Swift가 5까지 나왔지만 아직 가끔 Objective-C 코드를 보거나 수정할 일이 있다.
Objective-C에서 헤깔리는 부분을 간단 요약했다.
Extension
h : Header Files. Header files contain class, type, function, and constant declarations
m : Source files. This is the typical extension used for source files and can cotain both Objective-C and C code.
mm : Source files. A source file with this extension can contain C++ code in addition to Objective-C and C code. This extension should be used only if you actualley refer to C++ classes or features from your Objective-C code
Method
Class Method : +로 시작, Class에서 바로 접근 가능(static과 비슷한 개념, [UIColor redcolor])
Instance Method : -로 시작, Class를 Instance화 시켜야 사용 가능([[TestClass alloc] init])
Memory Management
MRC(Manual retain-release) : Retain Count로 개발자가 수동으로 관리(alloc, new, retain, release, dealloc 사용)
ARC(Auto Reference Counting) : 컴파일시 컴파일러가 자동으로 적절한 시점에 alloc, retain 등 삽입(strong, weak 사용)
iOS 4 이상부터 ARC가 생겼으므로 현재 MRC는 없다고 봐도 된다.
ARC는 적절한 시점에 Retain Count 관리코드를 삽입하는 것으로 GC(Garbage Collection)과는 다르다(GC는 프로그램 실행 중에 동적으로 감시하고 있다가 더 이상 사용할 필요가 없다고 여겨지는것을 해제시킴)
Property
@propery : 정의시 자동으로 getter, setter 생성 -> 일반적으로 변수 정의시 사용하면 된다@synthesize : @property를 사용한 것은 단지 컴파일러가 @implementation에서 getter와 setter가 작성되었다는 것을 기대하도록 하는 것 -> @synthesize까지 사용해야 한다 -> xCode 5부터 자동으로 사용(필요 없음)
Property Attribute
- 보통 @property (strong, nonatomic) NSString *name 식으로 strong, nonatomic 사용
atomic : 멀티쓰레딩
nonatomic : 싱글쓰레딩assign : setter에서 객체를 지정 받을 때 주소값만 지정받음 -> ARC 이후 strong, weak 사용retain : setter에서 객체를 지정 받을 때 기존것을 release하고 retain -> ARC 이후 strong, weak 사용copy : setter에서 객체를 지정 받을 때 기존것을 release하고 copy -> ARC 이후 strong, weak 사용
string : 강한 참조, 객체를 소유하여 레퍼런스 카운트를 증가시킴, 뷰 컨트롤러 자체가 해제되지 않는 이상 메모리에 남아 있는다
weak : 약한 참조, 뷰 컨트롤러의 소유가 아니므로 제거하면 메모리에서 바로 해제가 된다. 객체를 소유하지 않고 주소값만을 가지고 있는 포인터 개념
NSString *a = @"123abc";
NSInteger b = [a integerValue];
'개발삽질방 > iOS' 카테고리의 다른 글
xCode Framework Architecture 제거 (0) | 2019.12.27 |
---|---|
[iOS] Xcode 11 Swift Package Manager (0) | 2019.09.23 |
[iOS/Swift] UIWebview 웹 컨텐츠에 맞게 크기 조절 (0) | 2018.11.15 |