我有一个名为 Image 的实体的数据模型。这将用于存储图像。
以前我将图像作为特定实体的属性。
我设置了可变形的东西,一切都奏效了。
但是,现在我已将其移至一个单独的实体中,但我不断收到错误。
所以...这是 Image.m 文件的内容。
#import "Image.h"
#import "Person.h"
@implementation ImageToDataTransformer
+ (BOOL)allowsReverseTransformation {
return YES;
}
+ (Class)transformedValueClass {
return [NSData class];
}
- (id)transformedValue:(id)value {
NSData *data = UIImagePNGRepresentation(value);
return data;
}
- (id)reverseTransformedValue:(id)value {
return [[UIImage alloc] initWithData:value];
}
@end
@implementation Image
@dynamic image;
@dynamic createdDate;
@dynamic person;
@end
当我保存它时它不会抱怨当我创建它时它不会抱怨,我什至可以在 Person 实体中将它视为一个对象。
(Person *) $0 = 0x1002dec0 <Person: 0x1002dec0> (entity: Person; id: 0x4f8f30 <x-coredata://2800C028-8745-45FE-854B-5783FF3FC173/Person/p6> ; data: {
avatar = "0x1007e540 <x-coredata://2800C028-8745-45FE-854B-5783FF3FC173/Image/p1>";
createdDate = nil;
email = nil;
firstname = Blah;
id = "1234567890987654321234567890";
lastName = Blah;
updatedDate = nil;
})
avatar 属性是与 Image 实体的关系(一对一)。
但是,如果我尝试访问图像的任何属性,我会得到这个......
-[_NSObjectID_64_2 createdDate]: unrecognized selector sent to instance 0x1007e540
-[_NSObjectID_64_2 image]: unrecognized selector sent to instance 0x1007e540
等等等等……
产生错误的代码...
NSFetchRequest *request = [NSFetchRequest fetchRequestForEntityName:@"Person"];
[request setPredicate... blah];
NSArray *results = [context executeFetchRequest...];
Person *person = [results objectAtINdex:0];
NSLog(@"%@", person.firstName); //this works fine.
NSLog(@"%@", person.avatar.createdDate); //this crashes.
尝试删除图像属性并仍然遇到同样的问题。