这就是事情 . 在我的应用程序中,我想在CollectionView上显示存储在Core Data中的照片(是的,我使用外部存储) . 要仅获取我的实体中的照片,请执行以下操作:
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"SmallThing"];
[fetchRequest setResultType:NSDictionaryResultType];
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"smallphoto", nil]];
self.photos = [[managedObjectContext executeFetchRequest:fetchRequest error:nil]mutableCopy];
这似乎工作正常,它返回照片的数据并将其存储在阵列上 . 然后我创建了一个方法将其转换为UIImage,以便我可以存储在另一个数组上,如下所示:
- (NSMutableArray *)convertDataToImage:(UIImage *)image {
for (NSData *data in self.photos) {
image = [[UIImage alloc] initWithData:data];
[self.images addObject:image];
}
return self.images;
}
当我到达 image = [[UIImage alloc] initWithData:data
行时它崩溃了,我收到以下错误:
[16697:2367280] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSKnownKeysDictionary1 length]: unrecognized selector sent to instance 0x7fae0c117cc0'
我不知道还能做些什么 . 有任何想法吗 ?
提前致谢
1 回答
您明确告诉获取请求返回带有该行的字典:
这意味着
executeFetchRequest...
返回的数组包含NSDictionary
个对象,其键值对对应于您指定的属性 .您在
convertDataToImage
中的代码应该符合以下条件:如果你指定了另一个属性来获取
smallphoto
以外的其他属性,你当然会在那里替换那个字符串 .