当此代码被调用EXC_BAD_ACCESS
时,我收到NSLog(@"Count: %@", [fetchedObjects count]);
错误。这似乎是因为尚未提取对象或类似的东西,因为fetchedObjects不是nil
。我注意到如果我为count
更改了lastObject
,它就会起作用,并且会在控制台中打印以下内容
<Albums: 0x4dc7120> (entity: Albums; id: 0x4d9ad60 <x-coredata://xxxxxxxxxxxxxxxx/Albums/p1> ; data: <fault>)
代码
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Albums" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (error != nil) {
NSLog(@"Error: %@", error);
}
if (fetchedObjects != nil) {
NSLog(@"objects is not nil");
}
NSLog(@"Count: %@", [fetchedObjects lastObject]);
for (Albums *info in fetchedObjects) {
NSLog(@"Album: %@", info);
NSLog(@"Name: %@", info.name);
}
[fetchRequest release];
如果你们中的任何人有任何指针,那就太棒了。
谢谢!
更新
我意识到格式说明符应该是%d或%i,我的错误。但是,当我在numbersOfRowsInSection方法中调用count函数时,我得到了同样的错误。
答案 0 :(得分:1)
使用%d
或%i
作为格式说明符来打印 int 值。
NSLog(@"Count: %d", [fetchedObjects count]);
答案 1 :(得分:0)
答案非常正确:
NSLog(@"Count: %d", [fetchedObjects count]);
您还需要检查fetchedObjects的类型
[fetchedObjects isKindOfClass:[NSArray class]];
然后调用count方法,它会正常工作。