当代码被称为NSLog(@"Count: %@", [fetchedObjects count]);
时,出现EXC_BAD_ACCESS
错误。看起来好像是因为对象还没有被提取或类似的东西,因为fetchedObjects不是nil
。我注意到,如果我改变count
为lastObject
它的工作原理及以下被印在控制台EXC_BAD_ACCESS当调用访问对象的计数时
<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或%我,我的错误。但是,我在numbersOfRowsInSection方法中调用count函数时遇到同样的错误。
你是对的,但是当我自己调用count函数时,我得到完全相同的错误,那么问题是什么? – xidew
空堆栈是正确的,您正在打印提取对象的计数,该计数必须是整数值,并且您使用%@将其记录为对象,因此您应该使用%d打印该值。 – Sabby