标签: realm

存储int []和String []的Android领域

有没有办法存储int []和String [],除了创建一个包含这些的新对象,然后将其存储在realmList中

我有一个对象,它接受String,int []和String []的参数.你不能在领域中存储int []和String [],所以我创建了一个对象

public class Workouts extends RealmObject {

    private String workout;

    public Workouts() {

    }

    public Workouts(String workout) {
        this.workout = workout;
    }

    public String getWorkout() {
        return workout;
    }

    public void setWorkout(String workout) {
        this.workout = workout;
    }
}
Run Code Online (Sandbox Code Playgroud)

public class Multiplier extends RealmObject {

    private int multiplier;

    public Multiplier() {

    }

    public Multiplier(int multiplier) {
        this.multiplier = multiplier;
    }

    public int getMultiplier() {
        return multiplier;
    }

    public void setMultiplier(int multiplier) { …
Run Code Online (Sandbox Code Playgroud)

java arrays android realm

10
推荐指数
1
解决办法
9256
查看次数

致命错误:使用未实现的初始化程序'init(realm:schema :)'

我的问题:

  • 昨天,我更新了我的Realm框架,从0.91.50.92.0我的项目(用斯威夫特).我发现Realm Team已经将Swift部分和Objective-C部分与之前的整个Cocoa Framework 分开,团队也改变了语法.我已经将我的代码更正为最新的Realm语法,但我仍然遇到了一些问题init().

错误:

  • 编译器抛出错误:fatal error: use of unimplemented initializer init(realm:schema:) for CardModel.
  • 事情是这个错误没有发生与以前的版本Realm.
  • 我使用MultiPeer Connectivity框架进行项目,这意味着我需要EncodeDecode交换数据.
  • 我试图改变或其他添加init()CardModel,但没有奏效.

我的代码:

import RealmSwift

class CardModel: Object {
dynamic var cardID: String = ""
dynamic var firstName: String = ""
dynamic var lastName: String = ""
dynamic var userImage = NSData()
dynamic var status: String = …
Run Code Online (Sandbox Code Playgroud)

realm ios swift

10
推荐指数
1
解决办法
3960
查看次数

领域查询与列表

我正在使用领域将我的数据存储在Android上.真棒的框架!现在我唯一的问题是:

我在我的数据库中有一个带有国家ID的数组列表字符串.

现在我找回包含与国家关系的饮料.

有没有办法可以像这样进行查询:

String [] ids;

realm.where(Drinks.class).equalsTo("country.id", ids);
Run Code Online (Sandbox Code Playgroud)

那样的东西?

或者我是否真的需要进行查询以获取所有饮料,然后手动过滤列表?

编辑:

我的课程:

public class Drinks extends RealmObject {
    @PrimaryKey
    private String id;
    private String name;
    private Country country;
}

public class Country extends RealmObject {
    @PrimaryKey
    private String id;
    private String name;
}
Run Code Online (Sandbox Code Playgroud)

android realm

10
推荐指数
2
解决办法
9187
查看次数

"添加"和"创建"之间有什么区别

文档说明了明显的:

add(_:update:) Adds or updates an object to be persisted it in this Realm.
create(_:value:update:) Creates or updates an instance of this object and adds it to the Realm populating the object with the given value.
Run Code Online (Sandbox Code Playgroud)

但我不能完全看出有什么不同吗?

realm

10
推荐指数
1
解决办法
3361
查看次数

Realm模型中的单一反比关系

我正在开发一个简单的iOS应用程序来学习Swift,我正在使用Realm.据我所知,在Realm中,反向关系是通过一个LinkingObjects属性来实现的,该属性是一个包含链接到那个对象的所有对象的集合.

从Realm文档中考虑这个例子:

class Person: Object {
    // ... other property declarations
    let dogs = List<Dog>()
}

class Dog: Object {
    dynamic var name = ""
    dynamic var age = 0
    let owners = LinkingObjects(fromType: Person.self, property: "dogs")
}
Run Code Online (Sandbox Code Playgroud)

在我的模型,我知道,每个Dog实例将只有一个所有者,因为每一个狗,创建时被添加到只有一个PersonList.

现在,我想有一个owner: Person属性的Dog类,它唯一的主人引用使代码更直观,更简单的(而不必写出dog.owners.first每一次),同时保持延迟加载行为(它们被延迟加载的,对不对? ).我不知道查询"链接对象"有多贵,但由于周围会有很多"狗",我认为最好不要在对象初始化时访问它们.

现在这些是我能想到的解决方案:

1:

class Dog: Object {
    let owner: Person = LinkingObjects(fromType: Person.self, property: "dogs").first!
}
Run Code Online (Sandbox Code Playgroud)

2A:

class Dog: Object { …
Run Code Online (Sandbox Code Playgroud)

lazy-loading realm ios swift

10
推荐指数
1
解决办法
3396
查看次数

在Swift中将数组保存到Realm?

是否可以保存一组对象Realm?每当我对数组进行更改时,都应将其保存到Realm.

我目前的解决方案是使用a保存对象的对象for loop.对于追加/修改对象,调用save()将完成工作,但不是从我删除对象时.

class CustomObject: Object {
    dynamic var name = ""
    dynamic var id = 0

    override static func primaryKey() -> String? {
    return "id"
    }
}

struct RealmDatabase {

    static var sharedInstance = RealmDatabase()

    var realm: Realm!

    let object0 = CustomObject()
    let object1 = CustomObject()

    var array = [object0, object1]

    init() {
        self.realm = try! Realm()
    }

    func save() {

        for object in self.array {
            try! self.realm.write {
                self.realm.add(object, update: true)
            } …
Run Code Online (Sandbox Code Playgroud)

realm swift

10
推荐指数
2
解决办法
1万
查看次数

Android Realm - findAll返回带有null参数的对象

我需要在Realm中进行一个简单的查询,检索一个MyModel对象列表,然后在我的应用程序的其他地方使用它.碰巧一旦我查询Realm,每个对象都有空值,但toString返回预期值.

模型:

@RealmClass
public class MyModel extends RealmObject implements Serializable {

public static final String KEY_MODEL = "key_myModel";

@PrimaryKey
private int id;
private String myStr;
private int myInt;

//.... getters and setters

@Override
public String toString() {
    return "id = " + id
            + "\nmyStr = " + myStr
            + "\nmyInt = " + myInt;
}

}
Run Code Online (Sandbox Code Playgroud)

如何存储值:

public static void storeModel(MyModel model) {
        Realm realm = Realm.getDefaultInstance();
        realm.beginTransaction();
        realm.copyToRealm(model);
        realm.commitTransaction();
    }
Run Code Online (Sandbox Code Playgroud)

如何检索对象:

public static RealmList<MyModel> getNewElementsFromIndex(int indexFrom) …
Run Code Online (Sandbox Code Playgroud)

android realm realm-list

10
推荐指数
1
解决办法
6743
查看次数

Realm模型真的需要getter和setter吗?

如果Realm Model中的字段实际上需要getter和setter,我无法在任何地方找到它.例如,https://realm.io/docs/java/latest/api/io/realm/RealmObject.html上的文档说

RealmObject唯一的限制是不允许字段为final,transient或volatile.允许使用任何方法和公共字段.提供自定义构造函数时,必须声明不带参数的公共构造函数并为空.

使用Ignore注释的字段没有这些限制,也不需要getter或setter.

这似乎暗示了getter和setter对于非忽略字段的要求.然而,https : //realm.io/docs/java/latest/#customizing-objects上的文档说

可以像使用POJO一样使用RealmObjects.从RealmObject扩展,您可以让字段公开,并使用简单的赋值而不是setter和getter.

然后显示一个没有任何getter和setter的Realm Model的代码,而是有我们应该使用的公共字段.真?我认为Realm甚至没有在实际字段中存储任何值,所以从它们读取和写入可能是一个坏主意?我的意思是他们的调试文档https://realm.io/docs/java/latest/#debugging state:

不幸的是,这些值是错误的,因为不使用字段值.Realm在幕后创建一个代理对象,并覆盖getter和setter,以便访问Realm中的持久数据

那么有人可以赐教吗?我可以跳过getter和setter,只是坚持公共领域吗?有没有关于此的全面文档?

android realm

10
推荐指数
1
解决办法
1288
查看次数

'RealmNoticeModelClass'有一个主键,使用'createObject(Class <E>,Object)'代替

将Realm升级1.1.02.0.2.我在处理对象时遇到此错误.在早期版本中,它工作正常.

io.realm.exceptions.RealmException:'RealmNoticeModelClass'有一个主键,改为使用'createObject(Class,Object)'.

E/AndroidRuntime: FATAL EXCEPTION: main
                                                                 Process: com.rana.sahaj.myyu, PID: 20202
                                                                 io.realm.exceptions.RealmException: 'RealmNoticeModelClass' has a primary key, use 'createObject(Class<E>, Object)' instead.
                                                                     at io.realm.Realm.createObjectInternal(Realm.java:821)
                                                                     at io.realm.Realm.createObject(Realm.java:802)
                                                                     at com.rana.sahaj.myyu.notice.NoticeOnItemSelectedActivity$1$2.onSuccess(NoticeOnItemSelectedActivity.java:162)
                                                                     at com.rana.sahaj.myyu.notice.NoticeOnItemSelectedActivity$1$2.onSuccess(NoticeOnItemSelectedActivity.java:156)
                                                                     at com.google.android.gms.tasks.zze$1.run(Unknown Source)
                                                                     at android.os.Handler.handleCallback(Handler.java:733)
                                                                     at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                     at android.os.Looper.loop(Looper.java:136)
                                                                     at android.app.ActivityThread.main(ActivityThread.java:5052)
                                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                                     at java.lang.reflect.Method.invoke(Method.java:515)
                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
                                                                     at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

代码是

 realm.beginTransaction();
                    RealmNoticeModelClass realmNoticeModelClass = realm.createObject(RealmNoticeModelClass.class);
                    realmNoticeModelClass.setDocUrl(DocUrl1);
                    realmNoticeModelClass.setHashname(heading);
                    realmNoticeModelClass.setContent(contentString);
                    realmNoticeModelClass.setTime(getIntent().getExtras().getString("notice_time"));
                    realmNoticeModelClass.setPicurl(picUrlName);
                    realmNoticeModelClass.setUserPic(getIntent().getExtras().getString("image_user_notice"));
                    realmNoticeModelClass.setPdfUrl(PdfUrl);
                    realmNoticeModelClass.setPicOffline(SnapshotKey);
                    realmNoticeModelClass.setMetaType(null);
                    realmNoticeModelClass.setTimeStamp(SnapshotKey);
                    realm.commitTransaction();
Run Code Online (Sandbox Code Playgroud)

n RealmNoticeModelClass

public class RealmNoticeModelClass extends RealmObject { …
Run Code Online (Sandbox Code Playgroud)

java android realm

10
推荐指数
1
解决办法
5857
查看次数

在后台线程中写入Realm后,主线程看不到更新的数据

  1. 清除数据库.
  2. 进行API调用以获取新数据.
  3. 将从API检索的数据写入后台线程中的数据库中.
  4. 从主线程上的数据库中读取数据并呈现UI.

在步骤4中,数据应该是最新数据,但我们没有看到任何数据.

// remark: all main thread shared a realm object
DBManager.deleteAll()
// call api success, get newdata
DispatchQueue.global(qos: .background).async { 
    DBManager.initDBData(<newdata>)
    DispatchQueue.main.async {
        print("has data?????", DBManager.getBrands().count)
     }
 }

// when write
func write() {
    let realmBackgroud = try! Realm()
    try! realmBackgroud.write {}
 }
Run Code Online (Sandbox Code Playgroud)

multithreading realm ios swift

10
推荐指数
1
解决办法
3467
查看次数

标签 统计

realm ×10

android ×5

swift ×4

ios ×3

java ×2

arrays ×1

lazy-loading ×1

multithreading ×1

realm-list ×1