标签: realm

Realm Swift iOS - 由于未捕获的异常“RLMException”而终止应用程序,原因:“从不正确的线程访问领域”

我在 Swift 2.0 中从领域数据库加载对象时遇到问题。

我打电话:

    var cities = try! Realm().objects(City)
Run Code Online (Sandbox Code Playgroud)

我的应用程序崩溃了,我给出“由于未捕获的异常‘RLMException’而终止应用程序,原因:‘从不正确的线程访问领域’”

有没有人示例代码或教程我应该何时何地调用方法?

exception object realm ios swift

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

RealmResults.clear() 抛出 NotSupportedException

clearRealmResults该方法在0.89.1中已弃用

我在代码中的某些地方使用了这种方法。最新的文档没有任何关于它的更新。删除所有结果的新方法是什么Realm

android realm

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

替换的 List<T> 对象在 Realm 中未保持一致

我有一个List<Workout>偶尔需要排序的对象(例如,如果用户添加了一个无序的锻炼),但我似乎无法让新的排序List<Workout>​​保持不变。我的代码在运行时就可以工作(即,它按排序显示在视图上),但是当我退出 ViewController 或重新启动应用程序时,我什么也看不到。没有什么是由于exercise.workoutDiary.removeAll()持久性造成的,但显然随后对 的分配exercise.workoutDiary = sortedWorkoutDiary没有持久性。有什么想法吗?

其他一切都很好。典型recordWorkout()情况是假设没有任何乱序输入的情况。因此,除了覆盖排序列表之外,几乎所有情况下持久化都有效。

更新发生在这里:

struct ExerciseDetailViewModel {

    private let exercise: Exercise!

    func recordWorkout(newWorkout: Workout) {
        let lastWorkout = exercise.workoutDiary.last // grab the last workout for later comparison

        let realm = try! Realm()
        try! realm.write {
            exercise.workoutDiary.append(newWorkout) // write the workout no matter what
        }

        if let secondToLastWorkout = lastWorkout { // only bother checking out of order if there is a last workout...
            if newWorkout.date < …
Run Code Online (Sandbox Code Playgroud)

realm swift

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

RealmObject 中的 RealList 未自动加载

我遇到以下问题:

这是一个类ProjectInfo

public class ProjectInfo extends RealmObject
{
    @Getter @Setter @PrimaryKey private long          projectId;
    @Getter @Setter             RealmList<Submission> submissions;
}
Run Code Online (Sandbox Code Playgroud)

这是一个类Submission

public class Submission extends RealmObject
{
    @Getter @Setter @PrimaryKey long    id;
    @Getter @Setter             Date    creationDate;

    public Submission() {}

}
Run Code Online (Sandbox Code Playgroud)

当我创建对象并保存到领域数据库时,从 ProjectInfo 到提交的引用在列中显示如下

class_Submission{0,1,2,3}

这看起来是对的。

但是现在当我加载projectInfo对象时

ProjectInfo projectInfo = realm.where(ProjectInfo.class).equalTo("projectId", projectId).findFirst();
Run Code Online (Sandbox Code Playgroud)

该projectInfo.submissions == null;

我是否需要做一些特殊的事情才能自动加载其他表的引用?

我使用的是realm版本

classpath 'io.realm:realm-gradle-plugin:2.1.1'

@Getter 和@Setter 来自projectLombok。

更新1

sumbissionsRealmList在调试时,我看到类中调用的成员ProjectInfoRealmProxy具有正确的值。但它们没有写入submissions成员中。是什么原因?

java android realm realm-list

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

使用 Realm 在查询中过滤具有两个嵌套级别的对象

我有一个这样的模型:

\n\n
class CalendarEvent: Object, Mappable {\n\n\ndynamic var exId = ""\n@objc dynamic var title:String = ""\n@objc dynamic var desc:String = ""\ndynamic var fullDate = Date()\ndynamic var date = ""\ndynamic var time = ""\ndynamic var location = ""\ndynamic var subcategory:Subcategory?\ndynamic var update = false\nvar participants = List<Participant>()\n}\n\nclass Category:Object, Mappable{\ndynamic var exId = ""\n@objc dynamic var name="";\nvar subcategories = List<Subcategory>()\n}\n\nclass Subcategory:Object, Mappable{\ndynamic var exId = ""\ndynamic var name = ""\nlet category = LinkingObjects(fromType: Category.self, property: "subcategories")\ndynamic var active:Bool = true\ndynamic var update …
Run Code Online (Sandbox Code Playgroud)

subquery realm ios swift swift3

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

如何在领域上设置 .realm 文件

我正在使用领域开发一个应用程序。然后我想通过应用程序上的一组 .realm 文件来初始化领域。它最初位于 /Users/*****/Library/Developer/CoreSimulator/Devices/~****~/Documents/default.realm/ 我希望应用程序文件夹中的 default.realm 文件与 Storyboard 和 ViewController 对齐.swift 和其他文件。我该如何解决这个问题?

realm swift

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

领域删除除一张表之外的所有表

这是Realm Java所以我正在做

realm.beginTransaction();
realm.deleteAll();
realm.commitTransaction();
Run Code Online (Sandbox Code Playgroud)

我有20个左右的Realm课。我只想保留一个

而不是做

realm.beginTransaction();
  realm.delete(Table1.class);
  realm.delete(Table2.class);
  realm.delete(Table3.class);
  ...
realm.commitTransaction();
Run Code Online (Sandbox Code Playgroud)

有没有办法删除除一个表之外的所有表?

“deleteAll. except(Table12.class)”等?

谢谢!

java android realm realm-java

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

Realm(Android 应用程序)数据库中不同类型的数据类型?

领域数据库中使用哪种数据类型(即字符串、整数等)?该数据类型的大小是多少?

(即在 mySQL varchar 中最大长度为65,535。)

database android realm android-database realm-mobile-platform

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

Swift 中模块“Realm”和“RealmSwift”之间的循环依赖错误

我通过 Cocoapod 安装了 RealmSwift。尽管我没有将 Realm(Objective-C 版本)框架添加到 Podfile 中,但它仍然使用 RealmSwift 安装了 Realm。当我导入 RealmSwift 时,它给了我这样的错误:

模块“Realm”和“RealmSwift”之间的循环依赖。

为什么会发生这种情况以及我需要什么来消除这个愚蠢的错误?

realm cocoapods swift

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

使用 Realm swift 初始化列表值

我正在尝试初始化几个对象,其中包括列表对象,但我不确定确切的语义是什么。是否可以从 Realm 对象中初始化 List 对象,或者我是否必须以其他方式附加它们?

class ResourcesData: Object {
    @objc dynamic var resourceID = UUID().uuidString
    @objc dynamic var name = "";

    let valueSemantics = List<ValueSemantics>();

    convenience init(resourceName: String, semantics: List<ValueSemantics>) {
        self.init()
        self.name = resourceName
        self.valueSemantics = semantics
    }

    override static func primaryKey() -> String? {
        return "resourceID"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的列表模型与初始值设定项

class ValueSemantics: Object {
    @objc dynamic var name = "";
    @objc dynamic var value = 0;

    convenience init(value: Int, valueName: String) {
        self.init()
        self.name = valueName
        self.value = value …
Run Code Online (Sandbox Code Playgroud)

realm swift realm-list

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