NSArray * ComicArray = [TCSDataBase fetchManagedObjectsForEntity:@"ComicDB" withPredicate:nil];
[ComicArray retain];
arrayOfComics = [NSMutableArray arrayWithArray:ComicArray];
[[arrayOfComics valueForKey:@"Name"] sortUsingSelector:@selector(caseInsensitiveCompare:)];
[ComicArray release];
为什么arrayOfComics中的所有对象都超出范围?NSMutableArray使用arrayWithArray时,可变数组变成正确的大小,但对象全部超出范围
编辑:我试着这样做:
NSArray * ComicArray = [TCSDataBase fetchManagedObjectsForEntity:@"ComicDB" withPredicate:predicate];
arrayOfComics =[[NSMutableArray alloc] init];
for (int i = 0; i < [ComicArray count]; i++) {
[arrayOfComics addObject:[ComicArray objectAtIndex:i]];
}
[[arrayOfComics valueForKey:@"Name"] sortUsingSelector:@selector(caseInsensitiveCompare:)];
所有arrayOfComics
的对象仍然超出范围....
编辑:这工作,在arrayOfComicsTest的对象不是“出来的范围”。我不知道为什么这个工程,但当我做arrayOfComics他们超出了范围。 arrayOfComics
是.h中的类变量NSMutableArray * arrayOfComics
。直到这一点它才被使用。
NSMutableArray * arrayOfComicsTest = [NSMutableArray arrayWithArray:ComicArray];
什么是“超出范围”? – BoltClock 2011-01-21 04:09:19
你为什么要保留,然后释放'ComicArray`? – 2011-01-21 04:09:36
另外,你为什么要创建一个NSMutableArray数组的副本,然后从该NSMutableArray创建2个后续的NSArrays? – 2011-01-21 04:09:58