我有问题,这个代码,它的工作在调试环境。如需有关乐器,我对这个功能看到内存泄漏问题,文书中给出警告NSKeyedUnarchiver内存泄漏问题
类别事件类型TIMESTAMP地址大小负责任的图书馆负责来电 27 SocialNetwork malloc的00:19.951 0x3d64d20 80基金会 - [NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
- (NSMutableArray *)GetDataInstanceToUserDefaults{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSData *storedObject = [userDefaults objectForKey:@"MyDataKey"];
NSMutableArray *data;
if(storedObject != nil)
{
NSArray *savedArray = [NSKeyedUnarchiver unarchiveObjectWithData:storedObject];
if(savedArray != nil)
data = [[NSMutableArray alloc] initWithArray:savedArray];
else
data = [[NSMutableArray alloc] init];
}else{
data = [[NSMutableArray alloc] init];
}
return data;
}
我不明白的地方是我的问题吗?
感谢您的支持
编辑:顺便说一下,我应该给予更多的细节这个问题,这个功能(你可以看到)被存储我的对象。我的对象是自定义类并存储在NSMutableArray中。
我已经添加了这些方法在我的自定义类
-(void)encodeWithCoder:(NSCoder *)coder{
-(id)copyWithZone:(NSZone*)zone {
-(id)initWithCoder:(NSCoder *)coder{
TechZen再次感谢您的快速反应。那么,我该如何解决我的问题呢? – fyasar 2009-12-19 16:55:55
TechZen看到你的答案我研究过计算器后,斯特凡·冯·Chossy已经给了,与我的问题有关的答案,如果有人有同样的问题和我一样,在这里看看: http://stackoverflow.com/questions/537044 /存储定制对象功能于一个-的NSMutableArray合NSUserDefaults的/ 751749#751749 在自定义类应该使用 - (ID)的initWithCoder:(NSCoder *)译码器{ \t自我= [超级INIT] ; 而不是; - (ID)的initWithCoder:(NSCoder *)编码器; { self = [[CustomObject alloc] init]; 再次感谢您 – fyasar 2009-12-19 17:20:47
@fyasar请发表您的解决方案作为一个答案,这样我就可以了,沃特它。从'self = [[MyObject alloc] init]'切换到'self = [super init]'确实可以解决仪器分析报告泄漏问题。 – Palimondo 2011-11-04 10:12:27