티스토리 뷰
메모리 관리방법에 관하여...
Objective-C 가 기존 C/C++ 과 가장 다른점을 뽑으라 하면, 메모리 관리 방식이다.
C/C++ 언어가 Java, C# .. 언어들보다 배우고 사용하기 어렵다고 하는데, 그 이유는 메모리 관리 방법이 까다롭기 때문일 것이다.
아래 링크는 애플에서 제공하는 가이드 문서이다. Objective-C 를 이용하여 개발할 때 익혀두어야 할 메모리 관리 방법에 대해 아주 잘 정리 되어 있는 문서이니 참고서 처럼 참고하길...
또한,
여기도 잘 정리가 되어있음.
http://lambert.tistory.com/185
2013년 3월 14일 추가.
아래는 내가 Objective-C 개발을 하면서 준수하는 내용을 정리해 보았다.
Objective-C Memory Management TIP (Non-ARC Mode) 1. 프로퍼티 옵션이 retain 일 경우 dealloc메소드에 release 코드를 작성하여 준다. 예) @interface Person : NSObject { } @property (nonatomic, retain) NSString *name; @property (nonatomic, retain) NSString *address; @property (nonatomic, retain) NSString *sex; @end @implementation Person - (void)dealloc { [_name release];
[_address release];
[_sex release];
[super dealloc]; } @end 2. NSObject계열의 인스턴스 변수에 객체를 할당 할 때에는 retain count를 1올려준다. (alloc, retain사용) 예) - (id)init { self = [super init];
if (self) {
_name = [[NSString alloc] initWithFormat:@"홍길동"];
_address = [[NSString stringWithFormat:@"서울"] retain];
_sex = [@"남" retain];
}
return self; } 3. 프로퍼티 옵션이 retain인 프로퍼티에 set 할때에는 autorelease 객체를 할당한다. 예) - (void)setup { self.name = [[[NSString alloc] initWithFormat:@"홍길동"] autorelease];
self.address = [NSString stringWithFormat:@"서울"];
self.sex = @"남"; } 4. 지역변수를 만들어 사용할때에는 autorelease객체를 사용한다. 예) - (void)setAmericanStyleName { NSString *firstName = @"길동";
NSString *lastName = @"홍";
NSString *fullName = [NSString stringWithFormat:@"%@ %@", firstName, lastName];
self.name = fullName; } 5. NSObject 객체를 리턴할때에는 autorelease 객체를 리턴한다. 예) - (NSString *)urlStringWithDomain:(NSString *)domain andParameter:(NSString *)parameter { return [NSString stringWithFormat:@"%@/%@", domain, parameter]; } |
'iOS SDK' 카테고리의 다른 글
Apple Document Style의 문서를 만들기 (0) | 2013.03.15 |
---|---|
ios 라이브러리를 Framework 형태로 만들기 및 배포. (0) | 2013.03.14 |
1. Objective-C 에 대해서 알아보자. (0) | 2013.02.03 |
iOS6.0 SDK 에서의 AVPlayer와 AVAudioSession 관련 begin interruption bug!! (0) | 2012.10.16 |
iOS Core Data Progressively Migration (0) | 2011.11.25 |
- Total
- Today
- Yesterday
- AVAudioSession
- SDK
- ARX
- distribution
- git hub
- badgeValue
- apns
- AVAudioSessionDelegate
- xcode
- iOS5
- MappingModel
- 애플 문서
- CAD
- objective-c
- C++
- setSelectionIndicatorImage
- ManagedObjectModel
- object-c
- endInterruption
- C
- beginInterruption
- iPhone
- UITableView
- progressively
- UINavigationBar
- MFC
- AVAudioSessionInterruptionNotification
- ios
- 배포
- setBackGroundImage
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |