검색결과 리스트
Objective-C에 해당되는 글 3건
- 2012.03.04 [iOS] json parser for Objective-c
- 2011.12.17 [Syntax Highlighter] syntax Highlighter 즐겨찾기
- 2011.09.04 [iOS] Objective-C Singleton 만들기 2
글
'Mobile > iPhone / Xcode' 카테고리의 다른 글
[iOS] About View Controllers (0) | 2012.03.06 |
---|---|
[iOS] About Events in iOS (0) | 2012.03.04 |
[Xcode4] C, C++ 프로젝트 생성 (0) | 2011.10.22 |
[iOS] iOS5 GM 설치후 Personal Hotspot이 안나타날때 처리 방법 (0) | 2011.10.13 |
아이폰 펌웨어 업데이트 (0) | 2011.10.05 |
트랙백
댓글
글
Syntax Highlighter
1. http://alexgorbatchev.com/SyntaxHighlighter/manual/configuration/
2. http://alexgorbatchev.com/SyntaxHighlighter/
오브젝티브C 용 :
1. http://alexgorbatchev.com/SyntaxHighlighter/manual/configuration/
2. http://alexgorbatchev.com/SyntaxHighlighter/
오브젝티브C 용 :
'JavaScript > Syntax Highlighter' 카테고리의 다른 글
[Syntax Highlighter] SyntaxHighlighter에 Objective-C 추가 ver 2.0.296 (0) | 2011.08.01 |
---|---|
Syntax Hightlighter 2.0.296 (0) | 2011.03.20 |
트랙백
댓글
글
// AddressBookModel.h
// AddressBookModel.m
다른 문제는 다 해결됐는데 아무리 디버깅을 해봐도 dealloc 메소드가 호출되지 않네요.
결국 'killInstance'라는 클래스 메소드를 만들어서
내부에서 강제로 dealloc를 호출해주고 있습니다.
결국 문제는 싱글턴 만드는 것 까지는 좋은데 dealloc같이 메모리가 정확하게 해제되는 시점이 필요하다는 것입니다.
그렇지 않다면 메모리 해제시에 특정 작업을 처리 할 수가 없는 일이 발생하기 때문에 특정상황에서 애매해지는 일이 발생합니다.
전 억지로 killInstance라는 클래스 메소드를 만들었는데
혹 다른 방법을 알고있으시다면 알려주세요 ㅠㅠ
@interface AddressBookModel : NSObject { NSMutableArray *aData; } @property (nonatomic, retain) NSMutableArray *aData; +(AddressBookModel *)sharedInstance; +(void)killInstance; -(NSString*)print; @end
// AddressBookModel.m
static AddressBookModel *_addressBookModelSingleInstance = nil; @implementation AddressBookModel : NSObject @synthesize aData; -(NSString*)print { NSMutableString *str = [NSMutableString string]; for (int i = 0; i < [aData count]; i++ ) { [str appendFormat:@"%@ ", [aData objectAtIndex:i]]; } return str; } -(id)init { self = [super init]; if ( self != nil ) { // 데이터 초기화 장소 self.aData = [NSMutableArray arrayWithObjects:@"1", @"2", @"3", @"4", nil]; } return self; } -(void)dealloc { NSLog(@"AddressBookModel dealloc=>Ref Count=%d", [self retainCount]); [aData release]; [super dealloc]; } +(AddressBookModel *)sharedInstance { @synchronized(self) { if ( _addressBookModelSingleInstance == nil ) { _addressBookModelSingleInstance = [[AddressBookModel alloc] init]; NSLog(@"AddressBookModel sharedInstance=>Ref Count=%d", [_addressBookModelSingleInstance retainCount]); } } return _addressBookModelSingleInstance; } +(void)killInstance { @synchronized(self) { if (_addressBookModelSingleInstance != nil ) { [_addressBookModelSingleInstance dealloc]; _addressBookModelSingleInstance = nil; } } } +(id)allocWithZone:(NSZone *)zone { @synchronized(self) { if (_addressBookModelSingleInstance == nil) { _addressBookModelSingleInstance = [super allocWithZone:zone]; return _addressBookModelSingleInstance; } } return nil; } -(id)copyWithZone:(NSZone *)zone { return self; } -(id)retain { return self; } -(unsigned)retainCount { return UINT_MAX; } -(oneway void)release { } -(id)autorelease { return self; } @end인터넷을 뒤지니까 대략 비슷한 소스코드가 쏟아집니다.
다른 문제는 다 해결됐는데 아무리 디버깅을 해봐도 dealloc 메소드가 호출되지 않네요.
결국 'killInstance'라는 클래스 메소드를 만들어서
내부에서 강제로 dealloc를 호출해주고 있습니다.
결국 문제는 싱글턴 만드는 것 까지는 좋은데 dealloc같이 메모리가 정확하게 해제되는 시점이 필요하다는 것입니다.
그렇지 않다면 메모리 해제시에 특정 작업을 처리 할 수가 없는 일이 발생하기 때문에 특정상황에서 애매해지는 일이 발생합니다.
전 억지로 killInstance라는 클래스 메소드를 만들었는데
혹 다른 방법을 알고있으시다면 알려주세요 ㅠㅠ
'Mobile > iPhone / Xcode' 카테고리의 다른 글
[iOS] iOS에서는 보안상의 이유로 dynamic library Project를 만들수 없습니다. (0) | 2011.09.12 |
---|---|
[iOS] 아이폰 초성 검색 클래스를 만들어 보자 (0) | 2011.09.10 |
[iOS] iOS5 Beta 7에서는 Window-Based Application가 없어졌습니다. (0) | 2011.09.04 |
[iOS] UIButton의 alpha 값에 따른 이벤트 유무 (0) | 2011.08.16 |
[iOS] Rounded Rect View + ActivityIndecator (0) | 2011.08.14 |
RECENT COMMENT