【发布时间】:2011-02-27 10:37:38
【问题描述】:
我使用以下代码收到内存泄漏:
界面:
@property (nonatomic, retain) NSArray *sortedItems;
实施:
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"ScannedDate" ascending:NO] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [self.items sortedArrayUsingDescriptors:sortDescriptors];
self.sortedItems = [NSArray arrayWithArray:sortedArray]; // memory leak 100% here
- (void)viewDidUnload {
self.sortedItems = nil;
[super viewDidUnload];
}
- (void)dealloc {
[sortedItems release];
[super dealloc];
}
【问题讨论】:
-
sortedItems 属性是如何定义的?如果它具有保留属性 - 你会在 dealloc 方法中释放它吗?
-
你的属性 sortedItems 是如何定义的?
-
查看 dealloc 的更新代码和 sortedItems 的定义。
-
arrayWithArray 行的用途是什么?
-
完全编译的东西会有所帮助 - 我想,你正在失去 self.items,因为我看不到关于 self.items 的发布
标签: iphone objective-c memory-management nsarray nssortdescriptor