並べ替えられた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];
}
上記と同じNSlogを実行cellForRowAtIndexPath
すると、シミュレータがクラッシュします。