2013-04-18 2 views
0

싱글 톤 클래스 메소드가 포함 된 정적 라이브러리가 있는데, (IBAction) 함수에서 호출합니다. 처음에는이 함수를 호출하는 것이 좋습니다.하지만 두 번째는 오류가 발생하지 않고 오류 정보가 없습니다.iOS의 정적 라이브러리에있는 싱글 톤 클래스 메소드

+(myClass *)sharedClient{ 
    static myClass *_sharedClient = nil; 
    static dispatch_once_t onceToken; 

    dispatch_once(&onceToken, ^{ 
     _sharedClient = [[[myClass alloc] init] autorelease]; 

    }); 

    return _sharedClient; 
    } 

다음과 같이 내가 전화 : 싱글 톤 클래스 메소드는 다음과 같이 공유 접근 안에 새 개체에 오토 릴리즈를 보내는

-(IBAction) action 

    { 
     [myClass sharedClient] action]; 
    } 
+0

'오류 정보 없음'- 정말입니까? – CAMOBAP

답변

3

. autorelease 풀이 다음에 튀어 나면 공유 객체가 해제 된 다음 삭제됩니다. 단순히 autorelease를 제거하면 크래시 자체가 수정됩니다.

+0

정말 작동하지만 ARC를 사용하지 않습니다. 언제 릴리스해야합니까? – Henry

+0

그것의 (엄격하지 않은) 싱글 톤 접근 자로서 ... 당신은 그것을 공개하지 않습니다. 이것이 싱글 톤 패턴을 사용할 때 매우주의해야하는 이유입니다 - 공유 객체가 너무 많은 메모리를 사용하는 것으로 판명되면 덜 엄격한 접근 방식을 사용하도록 응용 프로그램의 디자인을 재고해야 할 수도 있습니다. 그러나 그 문제에 부딪치지 않는다면 괜찮습니다. –