티스토리 뷰

iOS SDK

2. Objective-C 메모리관리

hoiogi 2013. 2. 4. 11:34

메모리 관리방법에 관하여...


Objective-C 가 기존 C/C++ 과 가장 다른점을 뽑으라 하면, 메모리 관리 방식이다.


C/C++ 언어가 Java, C# .. 언어들보다 배우고 사용하기 어렵다고 하는데, 그 이유는 메모리 관리 방법이 까다롭기 때문일 것이다. 


아래 링크는 애플에서 제공하는 가이드 문서이다. Objective-C 를 이용하여 개발할 때 익혀두어야 할 메모리 관리 방법에 대해 아주 잘 정리 되어 있는 문서이니 참고서 처럼 참고하길...

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/MemoryMgmt.html


또한,


여기도 잘 정리가 되어있음.

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];

}



 


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함