當我有以下功能內存泄漏排序陣列
- (NSArray *) getUsers : (days) aDay {
NSArray *arr = [[[NSArray alloc] init] autorelease];
for (User *e in [week objectAtIndex:aDay]) {
//Get distance to user
e.place.distance = [[LocationManager sharedLocationManager] getDistanceWithLat:e.place.latitude Lon:e.place.longitude];
}
//Sort the array
arr = [ [week objectAtIndex:aDay] sortedArrayUsingComparator:^(id obj1, id obj2){
User *e1 = (User *)obj1;
User *e2 = (User *)obj2;
if (e1.place.distance <= e2.place.distance) {
return (NSComparisonResult)NSOrderedAscending;
} else {
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];
[arr retain];
return arr;
}
它泄漏,我無法找出如何解決它。如果我刪除[arr retian],那麼應用程序崩潰。
當我瓶坯動作模板儀器上這條線顯示100%的泄漏:
arr = [ [week objectAtIndex:aDay] sortedArrayUsingComparator:^(id obj1, id obj2){
我該如何解決此泄漏?
它是一個正常的鑄造'用戶* E1 =(事件*)OBJ1;'? – beryllium 2012-02-09 22:25:32
@beryllium不,更新了帖子。當我嘗試一些東西的時候把它弄糊塗了。 – 2012-02-09 22:28:07