@property(nonatomic, retain) NSString *password;
-(id)init {
...
password=[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]];
OR
password=[[NSProcessInfo processInfo] globallyUniqueString];
}
我的问题是,在某个随机点执行过程中,密码对象会自动释放。当我使用任一任务时效果相同。一旦我保留,问题就不复存在了。我确信在流程的任何地方都没有密码对象的释放 - 正如我所提到的那样,它是在单例类中。我还检查了即使密码对象被释放,类实例也是一样的。
请提示!
答案 0 :(得分:1)
您分配iVar,而不是属性...... 因此,当您不使用setter方法时,不会保留您的对象。
改为使用该属性:
self.password = ...
答案 1 :(得分:0)
你可以使用......
password=[[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]] retain];
另请查看Apple memory management上的文档。我还会在你的代码中设置断点,然后看看你的对象是否被释放。