출처 : http://cafe.naver.com/mcbugi/222516
Lazy Instantiation
참고로 저는 입문자 입니다. 자세히는 몰라요..^^;
Lazy Instantiation 이라는걸 사용하기전에...프로퍼티 선언부터 잠시 짚고 넘어가겠습니다.
한국인을 위한 ..... 팟케스트 보고 정리해보는 겁니다.
클래스에 헤더를 import 하죠...
Lazy Instantiation
참고로 저는 입문자 입니다. 자세히는 몰라요..^^;
Lazy Instantiation 이라는걸 사용하기전에...프로퍼티 선언부터 잠시 짚고 넘어가겠습니다.
한국인을 위한 ..... 팟케스트 보고 정리해보는 겁니다.
클래스에 헤더를 import 하죠...
#import <UIKit/UIKit.h>
#import "sdfasd.h"
@interface sdfasdViewController : UIViewController
@property (nonatomic, strong) sdfasd *objectPlus;
@end
저렇게 프로퍼티를 선언해주고..
위에 처럼 systhesize 해줍니다.
이유가 클래스변수와 인스턴스 변수를 구분하기 위함이랍니다..
프로퍼티를.. Lazy Instantiation 하는 이유.
"게으른 인스턴스화" 라고 한답니다.
#pragma mark - Lazy Instantiation
- (<#Super Object#> *)<#init object#>
@synthesize objectPlus = _objectPlus;
위에 처럼 systhesize 해줍니다.
이유가 클래스변수와 인스턴스 변수를 구분하기 위함이랍니다..
@synthesize objectPlus;
이렇게 해주게 되면 나중에 쓸때
objectPlus 이렇게 쓰면 되지만.. 클래스변수와 프로퍼티가 같은 형태로 쓰이기 때문에 구분한답니다.
위에처럼 해주게 되면
저도 자세히는 모릅니다. 그냥 저렇게 쓰고 있습니다.
(좋아요.. 구분하기도 좋고..)
이렇게 해주게 되면 나중에 쓸때
objectPlus 이렇게 쓰면 되지만.. 클래스변수와 프로퍼티가 같은 형태로 쓰이기 때문에 구분한답니다.
위에처럼 해주게 되면
self.objectPlus 이렇게 사용하게 됩니다.
objectPlus 는 클래스변수
self.objectPlus 는 프로퍼티 (인스턴스 변수)
objectPlus 는 클래스변수
self.objectPlus 는 프로퍼티 (인스턴스 변수)
(좋아요.. 구분하기도 좋고..)
프로퍼티를.. Lazy Instantiation 하는 이유.
"게으른 인스턴스화" 라고 한답니다.
- (sdfasd *)objectPlus
{
if (!_objectPlus) {
_objectPlus = [[sdfasd alloc] init];
}
return _objectPlus;
}
저 프로퍼티화 된 클래스를 필요할때만 생성해서 쓰고..
메모리 워닝이 나면..1차적으로 버려지는
뭐 그런 시스템이랍니다.
메모리 관리에 효율적이라네요.. 그래서 저도 자주 쓰고 있습니다.
아래는 스니펫 코드 입니다.
클래스 import 하고, 프로퍼티화 하고, 신서사이즈 까지 한뒤에..
사용하시면 되겠습니다.
저 프로퍼티화 된 클래스를 필요할때만 생성해서 쓰고..
메모리 워닝이 나면..1차적으로 버려지는
뭐 그런 시스템이랍니다.
메모리 관리에 효율적이라네요.. 그래서 저도 자주 쓰고 있습니다.
아래는 스니펫 코드 입니다.
클래스 import 하고, 프로퍼티화 하고, 신서사이즈 까지 한뒤에..
사용하시면 되겠습니다.
- (<#Super Object#> *)<#init object#>
{
if (!_<#init object#>) {
_<#init object#> = [[<#Super Object#> alloc] init];
}
return _<#init object#>;
}
'프로그래밍 > iOS' 카테고리의 다른 글
[snippet] 현재 설치된 앱의 경로 확인 (0) | 2012.07.22 |
---|---|
[snippet] UIGestureRecognizer (0) | 2012.07.22 |
[snippet] 기기회전에 따른 요소 재배치 (0) | 2012.07.22 |
[snippet] iAd 삽입 (0) | 2012.07.22 |
라이트 버전 어플 만들기 (0) | 2012.07.21 |