2010-09-29 22 views
0

任何人都可以阐明为什么这种使用mutableCopy会泄漏内存?mutableCopy内存泄漏

- (id)objectInListAtIndex:(unsigned)theIndex { 
     NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"noteNumber" ascending:YES] autorelease]; 
     [list sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 
     NSMutableArray *theArray = [list mutableCopy]; 
     NSDictionary *theDict = [theArray objectAtIndex:theIndex]; 
     return theDict; 
} 

回答

7

因为mutableCopy返回保留的对象,你永远不放开theArray

复制方法总是返回调用者负责释放的保留对象。这在API docsmemory management guide中也有详细说明。