【发布时间】:2011-03-02 23:20:34
【问题描述】:
我正在从 CoreData 调用中填充 NSMutableArray。我可以获取第一个对象,但是当我尝试获取计数时,应用程序崩溃并显示Program received signal: “EXC_BAD_ACCESS”. 如何获取计数?
这是相关代码 - 我已经在它崩溃的那一行添加了注释。
- (void)viewDidLoad {
[super viewDidLoad];
managedObjectContext = [[MySingleton sharedInstance] managedObjectContext];
if (managedObjectContext != nil) {
charactersRequest = [[NSFetchRequest alloc] init];
charactersEntity = [NSEntityDescription entityForName:@"Character" inManagedObjectContext:managedObjectContext];
[charactersEntity retain];
[charactersRequest setEntity:charactersEntity];
[charactersRequest retain];
NSError *error;
characters = [[managedObjectContext executeFetchRequest:charactersRequest error:&error] mutableCopy];
if (characters == nil) {
NSLog(@"Did not get results for characters: %@", error.localizedDescription);
}
else {
[characters retain];
NSLog(@"Found some character(s).");
Character* character = (Character *)[characters objectAtIndex:0];
NSLog(@"Name of first one: %@", character.name);
NSLog(@"Found %@ character(s).", characters.count); // Crashes on this line with - Program received signal: “EXC_BAD_ACCESS”.
}
}
}
以及头文件中之前的声明:
@interface CrowdViewController : UITableViewController {
NSManagedObjectContext *managedObjectContext;
NSFetchRequest *charactersRequest;
NSEntityDescription *charactersEntity;
NSMutableArray *characters;
}
我有点困惑,希望能知道发生了什么。
【问题讨论】:
标签: iphone memory-management core-data crash nsmutablearray