NSString - stringWithFormat 自动释放
Posted
技术标签:
【中文标题】NSString - stringWithFormat 自动释放【英文标题】:NSString - stringWithFormat released automatically 【发布时间】:2011-08-22 17:22:48 【问题描述】:@property(nonatomic, retain) NSString *password;
-(id)init
...
password=[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]];
OR
password=[[NSProcessInfo processInfo] globallyUniqueString];
我的问题是,在执行过程中,在某个随机点,密码对象会自动释放。当我使用任何一个任务时,效果都是一样的。一旦我放入保留,问题就不再存在。我确定在流程中的任何地方都没有释放密码对象 - 正如我提到的那样,它在单例类中。我还检查了即使释放了密码对象,类实例也是相同的。
请给点提示!
【问题讨论】:
【参考方案1】:您分配的是 iVar,而不是属性... 因此,由于您不使用 setter 方法,因此您的对象不会被保留。
改用该属性:
self.password = ...
【讨论】:
【参考方案2】:你可以使用...
password=[[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]] retain];
还可以在memory management 上查看 Apple 的文档。我还会在您的代码中设置断点,然后查看您的对象是否被释放。
【讨论】:
以上是关于NSString - stringWithFormat 自动释放的主要内容,如果未能解决你的问题,请参考以下文章
将 NSString 转换为具有日期格式的 NSString 块