- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要将我的模型对象之一(使用 Retrofit 从 Json 自动填充)转换为 Realm 对象。
起初,我的代码是 new RealmPoll()
而不是 realm.createObject(RealmPoll.class)
。 (我得到了 NullPointerException
就像 this question )所以我解决了这个问题。但是我找不到复制 RealmList 的方法。
我在 official Realm website tutorial 中找不到任何使用 RealmLists 创建 RealmObjects 的示例和 docs说
Only Realm can create managed RealmLists. Managed RealmLists will automatically update the content whenever the underlying Realm is updated, and can only be accessed using the getter of a RealmObject.
这让我相信这是不可能的?但这是一项非常简单的任务。我不知道如何解释文档的含义。
如果一个对象(例如下面的 RetrofitPoll)包含一个列表,是否有任何方法可以将它转换为一个 Realm 对象(例如下面的 RealmPoll)?
一个函数可以说明我的问题:
private RealmPoll convertRetrofitPollToRealmPoll(Realm realm, RetrofitPoll retrofitPoll)
{
RealmPoll realmPoll = realm.createObject(RealmPoll.class); //<----- fixed, used to be "new RealmPoll()".
//Convert List<Answer>
RealmList<RealmAnswer> realmAnswers = new RealmList<RealmAnswer>(); //<----- How to do same thing here?
for(RetrofitAnswer retrofitAnswer : retrofitPoll.getAnswers())
{
realmAnswers.add(convertRetrofitAnswerToRealmAnswer(retrofitAnswer));
}
realmPoll.setAnswers(realmAnswers);
}
RetrofitPoll.java
public class RetrofitPoll
{
private List<Answer> answers;
private String id;
private Date startDate;
private String title;
private Topic topic;
}
RealmPoll.java
public class Poll extends RealmObject
{
private RealmList<Answer> answers;
private String id;
private Date startDate;
private String title;
private Topic topic;
}
最佳答案
应该可以做到以下几点
ObjectWithList obj = new ObjectWithList();
RealmList<Foo> list = new RealmList();
list.add(new Foo());
obj.setList(list);
realm.beginTransaction();
realm.copyToRealm(obj); // This will do a deep copy of everything
realm.commitTransaction();
如果您正在使用 Retrofit 创建您的整个对象图,您应该能够仅使用一个一行将所有内容复制到 Realm 中。如果不是,那就是一个错误。
请注意,这也在文档中:
* Non-managed RealmLists can be created by the user and can contain both managed and non-managed
* RealmObjects. This is useful when dealing with JSON deserializers like GSON or other
* frameworks that inject values into a class. Non-managed elements in this list can be added to a
* Realm using the {@link Realm#copyToRealm(Iterable)} method.
非托管列表是通过 new RealmList()
创建的,但这在文档中可能会更清楚。
关于android - 如何创建一个包含 RealmList 的新 RealmObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159364/
我遇到了 Realm 问题,每次我尝试在存储 RealmObject 后将其设置为另一个 RealmObject 时,都会导致它崩溃并出现 NullPointerException。 例如。
我想从它的 Realm 中“分离”一个 RealmObject,这意味着我希望能够从一个方法中返回一个 RealmObject并能够在我关闭 Realm 实例后使用它。 像这样: public Per
直接上代码。我们有两个类: class Rocket extends RealmObject { @PrimaryKey private long id; private String name
写入 Realm : Realm realm = Realm.getInstance(mContext); realm.beginTransaction(); InfoCocktail content
考虑以下 RealmObject 子类 public class TimeSlot extends RealmObject { @PrimaryKey private int value = 0;
假设我的 Realm 数据库中有三个对象/元素:- 一个 B C 当我使用方法deleteFromRealm() 删除第一个元素(即 A)时,剩余两个对象的位置会像这样改变:- C B 而不是:- B
我有一个 RealmObject User 存储在一个单例中并在整个应用程序中访问——它是在 UI 线程上检索的。该对象表示已登录的用户,与 Item 类具有一对多关系。在事务中更改它时,例如: Re
我是 Realm 的新手,我想坚持以下模型: public class ChangeEntry { private int id; private long time; pri
我试图从官方文档的“通知”部分了解 Realm 中的通知类型,当我在多个托管对象中使用 RealmObject addChangeListener 时,只有一个对象发生变化时,所有这些通知类型都会被调
我的应用从 REST API 获取数据。 根据端点,我得到完整或部分 Account 的列表。 当 API 响应时,我调用 realm.copyToRealmOrUpdate(accounts)。 我
我在我的项目中做 Realm 数据库。当您使用 Realm 时,您需要将简单对象扩展为 RealmObject。我有一个问题:如何在不扩展 RealmObject 的情况下创建对象,但我也使用 Rea
我的 Android 应用程序中有一个配置类,我将其存储在 Realm 数据库中。我只是对其进行了编辑以遵循单例设计模式,因此只有一次配置实例。 问题是,该类现在有一个私有(private)构造函数,
为什么这段代码会触发 java.lang.IllegalArgumentException: RealmObject 无效,因此无法复制 错误? realm.beginTransaction(); r
documentation对于 realmObject.isValid() 说: isValid() Checks if the realmObject is still valid to use i
我在我的 android 应用程序中使用 Realm 作为数据模块,尽管我遇到了一些关于如何将自定义方法分配给 Realm 对象的问题。在 iOS 核心数据模块中,您有 NSObjects,它们保存到
在我的应用程序中,我有以下 RealmObjects: 产品 - 这作为主数据,不应修改。 购物车 - 购物车允许人们挑选要购买的东西。内容将是选择类型。 选择 - 表示用户选择的产品以及颜色、尺寸等
我在 Android 上使用 Realm,我有一个需要序列化为 JSON 的 RealmObject,我正在使用 GSON。模型看起来像: @RealmClass public class User
我是 Android 版 Realm 的新手,所以我不确定我是否以正确的方式处理这个问题。我有一个看起来像这样的类: public class Entry extends RealmObject im
我们有一个简单的类Person,它继承自 Realm Object。现在我们希望该子类符合 Equatable 协议(protocol)。非常简单的代码如下所示。 class Person: Obje
假设异步API调用返回Member Data,它是一个RealmObject,并且Member被保存到realm中。 public class Member extends RealmObject {
我是一名优秀的程序员,十分优秀!