2011-08-22 7 views
0
@property(nonatomic, retain) NSString *password; 

-(id)init { 
... 
password=[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]]; 
OR 
password=[[NSProcessInfo processInfo] globallyUniqueString]; 
} 

내 문제는 임의의 지점에서 실행되는 동안 암호 개체가 자동으로 해제된다는 것입니다. 할당 중 하나를 사용할 때 효과가 동일합니다. 내가 보유 할 때 문제는 더 이상 존재하지 않습니다. 나는 거기에 아무 곳이나 흐름의 비밀 번호 개체의 릴리스가 없다고 확신 해요 - 내가 말했듯이 그것은 싱글 톤 클래스에 있습니다. 나는 또한 패스워드 객체가 해제 되더라도 클래스 인스턴스가 동일하다는 것을 확인했다.NSString - stringWithFormat 자동으로 해제 됨

어떤 힌트를 주시기 바랍니다!

답변

1

속성이 아닌 iVar를 지정합니다 ... setter 메서드를 사용하지 않으므로 개체가 유지되지 않습니다.

대신 속성을 사용 :

self.password = ... 
0

당신은 사용할 수 ...

password=[[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]] retain]; 

또한 memory management에 애플의 문서를 체크 아웃. 또한 코드에 중단 점을 설정하고 객체가 해제 된 것을 확인합니다.

관련 문제