领域没有正确写入

Realm not writing correctly

我一直在尝试使用 Realm 为我的 cocos2d 游戏创建数据库,但无法解决一些问题。我正在使用 Realm Objective-C 0.92.3 (https://realm.io/docs/objc/latest/) 因为我需要我的游戏在 iOS 7 或更高版本上运行。

我一直在使用一些小代码来写入和读取,但不知何故它不起作用。

     let realm = RLMRealm.defaultRealm()
     var tempo = EnemyDB()
     tempo.damage = 7
     realm.beginWriteTransaction()
     realm.addObject(tempo)
     realm.commitWriteTransaction()
     var temp = EnemyDB.allObjects()

这以某种方式返回空对象(temp = RLMResults!0x00007f954708a070 上的未评估查询),有人看到任何问题吗?

感谢您的帮助

编辑:

import Foundation

class EnemyDB : RLMObject {
     var damage : Int!
}

您可能需要为 EnemyDB 中的 damage 的值明确设置默认值。

尝试将其更改为此,如果可行请告诉我!

class EnemyDB : RLMObject {
     var damage: Int = 0
}

这发生在我身上,最后我发现我的查询字符串不完整,方法是将我的谓词打印到控制台,如下所示。

Objective-C:

NSLog(@"%@",searchPredicate);

Swift:

print(\(searchPredicate)

打印了"SELF.message CONTAINS nil"。

nil 是这里的问题。我修复了它,问题消失了。

检查您的情况是否存在相同问题。