我有問題,這個代碼,它的工作在調試環境。如需有關樂器,我對這個功能看到內存泄漏問題,文書中給出警告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