【发布时间】:2023-03-12 01:48:01
【问题描述】:
我对这段代码有疑问,它正在调试环境中工作。在我看到此功能存在内存泄漏问题的仪器上,仪器发出警告
类别事件类型时间戳地址大小负责库负责调用者 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{
【问题讨论】:
标签: iphone cocoa-touch iphone-sdk-3.0