본문 바로가기
앱/iOS(Swift)

[CS] struct, class, enum

by 리드맥 2022. 1. 13.
  • struct
    • 상속 불가
    • stack영역에 저장, 일정크기 이상되면 heap에 저장된다
    • 속도 빠르고 멀티 쓰레드 환경에서 안전하다
    • 값 타입이다
    • swift 뼈대 대부분 구조체로 구성되어 있다
struct a {
var b : Int = 100
var c : String = "c"
}
  • class
    • 단일상속 가능
    • heap영역에 저장, 상대적으로 느리다
    • 참조 타입이다
    • swift 에서는 객체라는 용어대신 인스턴스라는 용어사용
    • iOS framework 대부분 클래스로 구성되어있다
    • deinitializer 존재( 클래스의 인스턴스가 메모리에서 해제되는 시점에 호출되는 함수)
  • struct, class 공통점
    • extension사용가능(구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가가능)
    • protocol사용가능(특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타요구사항등의 청사진)
    • initalizer 정의가능
  • enum
    • 상속 불가
    • 연관된 값을의 집합으로 공통된 타입으로 정의한다
    • RawValue 를 통해 원시값 지정가능
    • protocol 사용가능
enum Animal : Int { 

    case cat = 0

    case tiger

    case lion

}

' > iOS(Swift)' 카테고리의 다른 글

[Swift] CoreData CRUD  (0) 2022.01.13
[Swift] 데이터 ViewController간 넘겨주는방법  (0) 2022.01.13
[iOS] 뷰컨트롤러 생명주기  (0) 2022.01.13
[Swift] NSCache, 딕셔너리  (0) 2022.01.13
[Swift] setNeedsLayout, setNeedsDisplay  (0) 2022.01.13

댓글