我有一个用"图像"定义的Realm类。 NSData类型的属性。我已为"图像"设置了默认值in + defaultPropertyValues方法的NSDictionary返回值为
@"image":[NSNull null]
。这表示没有设置图像值。
但是,保存Realm对象时程序崩溃并出现以下错误:
[NSNull UTF8String]: unrecognized selector sent to instance 0x10abe9ce0
您能否告知Realm Object中的NSData属性是否允许nil值。如果是这样,是否有不同的方式来表示空的NSData属性。
设置非零NSData值时,该问题不存在。
提前谢谢
更新: 代码:
Item.h
@interface UploadImage : RLMObject
@property uploadImage:NSData
@end
Item.m
+ (NSDictionary *)defaultPropertyValues
{
return @{@"uploadImage":[NSNull null]...};
}
当uploadImage设置为nil或从NSDictionary获取默认值时发生错误。
我使用的解决方法是使用["" dataUsingEncoding:NSUTF8StringEncoding]
答案 0 :(得分:3)
目前只有一种属性可以是nil / NULL,那就是RLMObject属性。可选(可空)属性具有高优先级,但目前我们推荐这两种工作方式中的任何一种:
在这里阅读更多内容:
答案 1 :(得分:1)
您可以初始化NSData属性并检查长度是否为0:
let data = NSData()
if data.length == 0 {
println("handle like nil value")
} else {
println("Do what you want")
}