标签: 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
查看次数

领域:从后台线程添加,更新,删除操作并在主线程上获取结果的正确方法

我使用Realm作为我的应用程序,我希望能够在后台线程上查询结果并在主线程上接收它们.实现这一目标的最佳方法是什么?什么是使用领域的最佳实践(主线程和背景有不同的方法?主要在应用程序中使用领域的静态实例?可能是另一种好方法?)

我已阅读并看到这些选项可用: - 将领域对象解析为我自己的对象并返回它们(结果的副本). - 返回对象的键并从主线程再次查询.

感谢任何人都可以给我的帮助,我真的认为领域有很大的潜力,但缺乏良好的教程和最佳实践.

thread-safety realm ios

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

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

文档说明了明显的:

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
查看次数

'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
查看次数

完全离线工作的领域(从不在线)

我试图了解 mongoDB 的每个元素是如何工作的,但我真的很困惑如何处理离线。

\n

前往: https: //realm.io/

\n

我读到了这个:

\n
\n

Realm\xe2\x80\x99s 移动数据库是 CoreData 和 SQLite 的开源、开发人员友好的替代方案。只需几分钟即可启动,几小时内即可移植您的应用程序,并节省数周的工作时间。

\n
\n

然后这部分提到了离线部分:

\n
\n

专为离线使用而设计

\n
\n

这是否意味着Realm可以在移动应用程序中用作完全离线的数据库?

\n

如果我理解正确的话,这个数据库的工作方式与 Android Room 类似,我使用对象/文档存储数据。

\n

因为当我转到“让我们开始”部分时,我被重定向到此处:

\n

https://docs.mongodb.com/realm/get-started/introduction-mobile/

\n

我在哪里读到这部分:

\n
\n

在开始之前,您需要一个 MongoDB Atlas 帐户。您可以在 Atlas 入门文档中了解有关创建 Atlas 帐户的更多信息

\n
\n

所以我的第一个问题:为什么我需要 Atlas 帐户?我理解Atlas就是在云端有一个MongoDB数据库。如果我想使用离线数据库,为什么需要这个?

\n

我想本教程想要展示所有工具的协同工作。所以也许可以跳过该步骤。但后来转到 React Native 教程,我看到了这部分:

\n

https://docs.mongodb.com/realm/tutorial/react-native/#std-label-react-native-tutorial

\n
\n

连接到您的 MongoDB Realm 应用程序

\n
\n
\n

要让应用程序与您的后端一起工作,您首先需要实例化 Realm 应用程序。Realm 应用程序是 MongoDB Realm 后端的接口。导航到 getRealmApp.js 文件并完成 getRealmApp() …

realm mongodb react-native

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

如何将领域数据库迁移到应用程序组?

对最近在应用和扩展程序之间共享Realm数据感到非常兴奋.该文档详细说明了如何将默认域设置为应用程序组目录,我已经开始工作了.

这就是我所坚持的 - 将旧数据库转移到应用程序组中的新位置的最佳方法是什么?

realm ios swift

9
推荐指数
1
解决办法
1414
查看次数

如何将RealmSwift List转换为结果?

我正在使用Realm List/Results作为我的dataSource UITableView.在某些时候,我为它分配一个列表.喜欢:

var dataSource:List<SomeObject>! // Or >> Results<SomeObject>!
let aRealmObject =  realm.objectForPrimaryKey(SomeObject.self, key: objectId) 
dataSource = aRealmObject.someList // dataSource should be List
Run Code Online (Sandbox Code Playgroud)

然后我在这个列表上有一个过滤器如果用户更改了过滤日期,我喜欢这样:

dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results
Run Code Online (Sandbox Code Playgroud)

但上面的行会导致错误,因为返回类型filter是一个Results对象并且aRealmObject.someList是一个List.

处理这种情况的最佳方法是什么?

  • 将dataSource作为a List并将Results对象转换为List?怎么样??
  • 将dataSource设为a Results并转换ListResults?怎么样??
  • 或者你可能有更好的方法,请与我分享.

谢谢,

realm ios swift realm-cocoa

9
推荐指数
2
解决办法
4022
查看次数

将新Object添加到Realm中的现有List

我有两节课.首先看起来像这样:

class Person: Object {
    dynamic var owner: String?
    var dogs: List<Dogs>()
}
Run Code Online (Sandbox Code Playgroud)

和第二类看起来像这样:

class Dogs: Object {
    dynamic var name: String?
    dynamic var age: String?
}
Run Code Online (Sandbox Code Playgroud)

现在在ViewController'viewDidLoad'中我Person用空创建对象List并将其保存在Realm中

func viewDidLoad(){
    let person = Person()
    person.name = "Tomas"
    try! realm.write {
        realm.add(Person.self)
    }
}
Run Code Online (Sandbox Code Playgroud)

它的伟大工程,我能创造Person,当我尝试读取这个数据的问题开始SecondViewControllerViewDidLoad做这件事:

var persons: Results<Person>?

func viewDidLoad(){
    persons = try! realm.allObjects()
}
Run Code Online (Sandbox Code Playgroud)

并尝试新添加DogList按钮的动作做:

@IBAction func addDog(){
    let newDog = Dogs()
    newDog.name = …
Run Code Online (Sandbox Code Playgroud)

realm ios swift realm-list

9
推荐指数
1
解决办法
8925
查看次数

realm.write和realm.beginWrite + realm.commitWrite有什么区别?

在Realm中有两种执行写入事务的方法,它们之间的区别是什么?

1.

try! realm.write {
  ...
}
Run Code Online (Sandbox Code Playgroud)

2.

realm.beginWrite()
...
try! realm.commitWrite()
Run Code Online (Sandbox Code Playgroud)

realm ios swift

9
推荐指数
1
解决办法
3476
查看次数