我有一个已排序的 NSMutableDictionaries 数组。
该数组已被声明和合成,因此它可以在代码中的任何位置访问。然而,它不是。
当我尝试在 cellForRowAtIndexPath 中读取它时,使用 po 命令得到 0x5852400 似乎没有指向调试器中的有效对象,并且在使用 NSLog 时出现 EXC_BAD_ACCESS 错误。
代码:
- (void)request:(FBRequest *)request didLoad:(NSArray*)result
{
int counter;
friendsArray = [[NSMutableArray alloc] init];
for (NSDictionary *d in [result objectForKey:@"data"])
{
[friendsArray addObject:d];
counter++;
}
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"first_name" ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
newfriendsArray = [[NSArray alloc] init];
newfriendsArray = [friendsArray sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"The new array which works and has been sorted: %@", newfriendsArray);
[[self tableView] reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
NSLog(@"Array still working here: %@", newfriendsArray);
return [newfriendsArray count];
}
执行与上述相同的 NSlogcellForRowAtIndexPath
会导致模拟器崩溃。