Core data 带核心数据绑定的Base64 png
我有JSON,它包含我添加到核心数据中的base64解码PNG图像。我想用绑定到我的核心数据模型的图像井来显示这些图像 问题是我不能将Core data 带核心数据绑定的Base64 png,core-data,base64,cocoa-bindings,nsimageview,Core Data,Base64,Cocoa Bindings,Nsimageview,我有JSON,它包含我添加到核心数据中的base64解码PNG图像。我想用绑定到我的核心数据模型的图像井来显示这些图像 问题是我不能将数据与NSArchiveFromData一起使用,因为它已被弃用 我的问题类似于,但我不太明白答案 有人有主意吗 谢谢您没有定义您的问题到底是什么 要从NSData加载NSImage,请参阅和initWithData: 假设您有这样的核心数据对象: @class MyObject : NSManagedObject @property NSData *imag
数据
与NSArchiveFromData
一起使用,因为它已被弃用
我的问题类似于,但我不太明白答案
有人有主意吗
谢谢您没有定义您的问题到底是什么 要从NSData加载NSImage,请参阅和
initWithData:
假设您有这样的核心数据对象:
@class MyObject : NSManagedObject
@property NSData *imageData;
@end
它的实施:
@implementation MyObject
@dynamic imageData;
@end
现在,添加一个新属性:
-(NSImage *)bindableImage {
[self willAccessValueForKey:@"bindableImage"];
NSImage *myImage = [[NSImage alloc] initWithData:[self imageData]];
[self didAccessValueForKey:@"bindableImage"];
return myImage;
}
另外,当imageData属性发生更改时,通知绑定哪些更改:
+ (NSSet *)keyPathsForValuesAffectingImageData {
return [NSSet setWithObjects:@"bindableImage", nil];
}
就这样。我想,这应该行得通,但我没有尝试:)
我忘了Base64-请检查另一个答案。您没有定义您的问题到底是什么 要从NSData加载NSImage,请参阅和
initWithData:
假设您有这样的核心数据对象:
@class MyObject : NSManagedObject
@property NSData *imageData;
@end
它的实施:
@implementation MyObject
@dynamic imageData;
@end
现在,添加一个新属性:
-(NSImage *)bindableImage {
[self willAccessValueForKey:@"bindableImage"];
NSImage *myImage = [[NSImage alloc] initWithData:[self imageData]];
[self didAccessValueForKey:@"bindableImage"];
return myImage;
}
另外,当imageData属性发生更改时,通知绑定哪些更改:
+ (NSSet *)keyPathsForValuesAffectingImageData {
return [NSSet setWithObjects:@"bindableImage", nil];
}
就这样。我想,这应该行得通,但我没有尝试:)
我忘了Base64-请检查另一个答案。尝试一些类似的方法(我不确定您是在属性上使用绑定,还是使用NSArrayController-我将尝试回答这两种情况) 您可以从json中提取字符串并对其进行解码: (您需要stackoverflow答案中引用的开源库:) 然后用这些数据初始化图像 如果使用NSArrayController管理核心数据,请创建一个返回映像的值转换器 创建NSValueTransformer的子类,并根据需要命名它。在实现中,添加:
+(Class)transformedValueClass {
return [NSImage class];
}
-(id)transformedValue:(id)value {
if (value == nil) {
return nil;
} else {
NSData *data = [NSData dataWithBase64EncodedString:value]; //might be [value stringValue]
return [[NSImage alloc] initWithData:data];
}
}
然后,在已对映像设置绑定的interface builder中,只需将值转换器设置为所创建的类。尝试这样做(我不确定您是在属性上使用绑定,还是使用NSArrayController-我将尝试回答这两种情况) 您可以从json中提取字符串并对其进行解码: (您需要stackoverflow答案中引用的开源库:) 然后用这些数据初始化图像 如果使用NSArrayController管理核心数据,请创建一个返回映像的值转换器 创建NSValueTransformer的子类,并根据需要命名它。在实现中,添加:
+(Class)transformedValueClass {
return [NSImage class];
}
-(id)transformedValue:(id)value {
if (value == nil) {
return nil;
} else {
NSData *data = [NSData dataWithBase64EncodedString:value]; //might be [value stringValue]
return [[NSImage alloc] initWithData:data];
}
}
然后在interface builder中设置图像绑定,只需将值转换器设置为您创建的类。问题是我想用绑定实现这一点,但我不知道如何用Base64编码的图像实现这一点。问题是我想用绑定实现这一点,但我不知道如何用Base64编码的图像实现这一点。谢谢!我会在有时间的时候尽快实施(今晚晚些时候)。是的,我使用NSArrayController。我会试试看,然后你可以兑现:)谢谢!我会在有时间的时候尽快实施(今晚晚些时候)。是的,我使用NSArrayController。我会试试看,然后你就可以套现了:)