使用Android

时间:2016-06-02 05:39:56

标签: android realm nullable

以前,当Java(Android)没有稳定版本的域时,我们无法在域中存储空值,我们必须执行一些不自然的黑客才能这样做,如this post中所述

但是现在已经发布了realm 1.0,是否有关于能够存储空值的更新?

例如:不幸的情况是JSON中没有字段我想在解析后存储在领域但没有手动处理它。

我有以下代码:

realmObject.setData(jsonObject.getString("SELECTOR"));

程序流程停止并退出代码所在的块。

logcat显示

  

W / System.err:org.json.JSONException:SELECTOR没有值

但是当我这样做时:

realmObject.setData(null);

程序流程不会停止并继续我的领域声明realmObject.setData(null);

在某些情况下,我的Json文件中的标签“SELECTOR”没有值。 我希望它默认为null。

2 个答案:

答案 0 :(得分:1)

我实际上发现问题实际上只是:

UITextView *textView =[[UITextView alloc] init];
textView.text = @"text here";
[textView setFont:[UIFont systemFontOfSize:90]];
textView.delegate = self;
[textView setBackgroundColor: [UIColor clearColor]];
[textView setTextColor: [UIColor whiteColor]];
textView.frame=CGRectMake(150,300,self.view.frame.size.width-40,200);
//textView.transform = CGAffineTransformMakeRotation(M_PI_4);
[textView setReturnKeyType:UIReturnKeyDone];
textView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:textView];

不是整个陈述:

jsonObject.getString("SELECTOR")

所以我的修复是

realmObject.setData(jsonObject.getString("SELECTOR"));

答案 1 :(得分:0)

您可以使用has检查密钥是否可用,以及该保存值是否为realm对象的基础

 if (jsonObject.has("SELECTOR")) {
       realmObject.setData(jsonObject.getString("SELECTOR"));
    }
else{
 realmObject.setData(null);
}