ios - 尝试使用 Realm 时应用程序崩溃 SIGABRT

标签 ios xcode swift realm

我正在尝试使用 Realm 保存一个简单的对象,但应用程序在尝试进行写入事务时一直崩溃,即使它被包裹在 Do Catch block 中也是如此。

let theme = Theme()
    theme.name = "Custom Theme"
    theme.backgroundColor = backgroundColor
    theme.accentColor = accentColor
    theme.numberColor = numColor
    theme.functionColor = funcColor

    // Add to the Realm inside a transaction
    do {
        try Realm().write {
            do {
                try Realm().add(theme, update: true)
            } catch {
                print("Error saving data")
            }
        }
    } catch {
        print("Realm.write error")
    }

这是“主题”对象

class Theme : Object {
dynamic var name = ""
dynamic var backgroundColor = ""
dynamic var accentColor = ""
dynamic var numberColor = ""
dynamic var functionColor = ""

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

这是崩溃的截图 SIGABRT Crash

编辑:上面导致崩溃的代码仅在单击按钮时执行。也没有控制台输出。我正在通过 CocoaPods 引入 Realm 。

最佳答案

啊,这可能与您创建 Realm 实例的方式有关,试试这个:

let realm = try! Realm()

do {
    try realm.write {
        do {
            try realm.add(theme, update: true)
        } catch {
            print("Error saving data")
        }
    }
} catch {
    print("Realm.write error")
}

不过,通常您不需要将交易包装到 do-catch block 中:

let realm = try! Realm()

try! realm.write {
    realm.add(theme, update: true)
}

关于ios - 尝试使用 Realm 时应用程序崩溃 SIGABRT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032732/

相关文章:

ios - 操作字符串数组以在末尾获得 +1

ios - Swift 在类中声明类

ios - SwiftUI:如何知道修饰符的正确顺序?

ios - AVPlayer 视频始终无法加载

ios - Firebase 匿名登录 - 为什么 FirebaseID 在登录到 Facebook 时发生变化,但在未登录到 Facebook 时保持不变?

ios - 与 UICollectionView 单元格一起滑动 View

iphone - 从应用程序中添加到主屏幕?

ios - 无法正确显示核心数据中的图像

objective-c - developer.apple.com 上的教程与 Xcode 项目模板之间的差异

swift - SCNIKConstraint 如何工作?