티스토리 뷰
출처
클래스와 구조체 개념
클래스와 구조체 비교
정의 문법
struct SomeStructure {
}
class SomeClass {
}
struct Resolution {
var width = 0
var height = 0
}
class VideoMode {
var resolution = Resolution()
var interlaced = false
var frameRate = 0.0
var name: String?
}
클래스와 구조체 인스턴스
let someResolution = Resolution()
let someVideoMode = VideoMode()
someVideoMode.resolution.width = 1280
print("The width of someVideoMode is now \(someVideoMode.resolution.width)")
구조체 타입에 대한 멤버 초기화
let vga = Resolution(width: 640, height: 480)
구조체와 열거형은 값 타입이다.
let hd = Resolution(width: 1920, height: 1080)
var cinema = hd
cinema.width = 2048
print("cinema is now \(cinema.width) pixels wide") // 2048
print("hd is still \(hd.width) pixels wide") // 1920
클래스는 참조타입이다.
let tenEighty = VideoMode()
tenEighty.frameRate = 25.0
let alsoTenEighty = tenEighty
alsoTenEighty.frameRate = 30.0
print("The frameRate property of tenEighty is now \(tenEighty.frameRate)") // 30
식별 연산자 ( ===, !== )
클래스는 참조 타입이기 때문에 동일한 하나의 클래스 인스턴스에 대해
여러 개의 상수와 변수로 참조가 가능하다.
두 개의 상수나 변수가 명시적으로 같은 클래스의 인스턴스를 참조하고 있는지
찾아내는 것은 유용하며, Swift 는 두 개의 식별 연산자를 제공한다.
if tenEighty === alsoTenEighty {
print("tenEighty and alsoTenEighty refer to the same VideoMode instance.")
}
=== 는 클래스를 참조하는 두 개의 상수나 변수가
명시적으로 같은 클래스 인스턴스이다라는 것을 의미한다.
포인터
클래스와 구조체 선택하기
- 저장되어 있는 모든 프로퍼티가 값 타입일 때
- 기존 다른 타입으로부터 프로퍼티나 동작들 상속이 필요하지 않을 때
구조체의 좋은 예제로는
- 도형의 크기에서 width, height 를 캡슐화 할 때
- 시리즈의 범위를 참조하는 방법으로 start, length 를 캡슐화 할 때
- 좌표에서 x, y, z 를 정할 때
등이 있다.
문자열, 배열, 딕셔너리에 대한 할당과 복사
'iOS 개발 > Swift' 카테고리의 다른 글
[Swift 3] 메소드 (Method) (0) | 2017.04.15 |
---|---|
[Swift 3] 프로퍼티 (Property) (0) | 2017.04.15 |
[Swift 3] 열거형 (Enumerations) (0) | 2017.04.14 |
[Swift 3] 클로저 (Closures) (0) | 2017.04.14 |
[Swift 3] 함수 정의와 호출 및 함수 타입 (Function) (1) | 2017.04.14 |
- Total
- Today
- Yesterday
- AWS
- EffectiveObjectiveC
- workerThread
- CIImage
- 꺼내먹어요
- Swift 3.0
- Swift 3
- Swift3
- optional
- RunLoop
- dictionary
- NSManagedObject
- string
- NSManagedObjectContext
- Arc
- thread
- coredata
- delegate
- docker
- Swift
- HTTP
- applicationWillResignActive
- NSManagedObjectModel
- set
- UIView
- ios
- Block
- CGImage
- 읽기 좋은 코드가 좋은 코드다
- Swfit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |