RSS

iOS5에서의 메모리 관리 (ARC)

14 Aug

iOS5에서의 메모리 관리 (ARC)

올해 WWDC에서 발표된 iOS5 에서는 컴파일러가 ARC라는 개념을 사용하는데요.

ARC가 뭐냐면 Automatic Reference Counting 이라고 해서 자동으로 참조수를 계산해 주는 것 같습니다.

많은 분들이 Objective-C를 사용하시면서 release 개념과 retain개념을 많이 어려워하시는데요.

다음 버전부터는 이 문제점이 좀 줄어 들것으로 예상됩니다.

그리고 retain과 release를 쓰는 코딩 시간 또한 줄것으로 예상됩니다.

WWDC에서 발표된 문서를 대충 요약하자면요.

  • retain, release, retainclount, autorelease 를 사용 할 수 없습니다.
  • dealloc에 의지할 필요가 없습니다.
  • custom dealloc 함수에서 [super dealloc]을 부를 필요가 없습니다.(컴파일 에러가 날것입니다.)
  • NSAllocateObject, NSDeallocateObject를 사용할수 없습니다.
  • alloc의 의해 만들어진 오프젝트를 실행중에 runtime이 deallocating object를 관리할 것 입니다.
  • C 구조체를 사용 할수 없을 것입니다. (NSObject를 사용하랍니다.)
  • NSAutoreleasePool을 사용할 수 없습니다.
@interface Person : NSObject

@property (nonatomic, strong) NSString *firstName;

@property (nonatomic, strong) NSString *lastName;

@property (nonatomic, strong) Person *spouse;

@end

@implementation Person

@synthesize firstName, lastName, spouse;

@end

에서 보시면 retain을 사용하는데신 strong이라는 속성을 사용합니다.

– (void)takeLastNameFrom:(Person *)person

{

NSString *oldLastname = [self lastName];

[self setLastName:[person lastName]];

NSLog(@”Lastname changed from %@ to %@”, oldLastname, [self lastName]);

}

ARC를 상용함으로써 NSLog를 사용하기전에 oldLastName이 dealloc 되지 않음을 보장해줌니다.

 
Leave a comment

Posted by on August 14, 2011 in iOS Apps

 

Tags: , , , , , , , , , , , , , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: