如何从RealmSwift中取出一个字符串值?

时间:2016-05-07 18:51:23

标签: ios swift2 realm

我在这里引用RealmSwift开发iOS应用程序。 https://realm.io/docs/swift/latest/#in-memory-realms 而且,我不明白的是,如何指示领域文件中数据的位置(记录和列)。

我在保存与ViewController.swift相同位置的主文件夹中保存了一个名为“DicData.realm”的域文件。

DicData.realm的数据是这样的:

1,face,423
2,rain,435
3,airplane,555

如果我运行下面的代码,它只打印如下:“results:Results()”。似乎过滤方法只是被忽略了。当我想取出“飞机”这个词并将其作为字符串存储在变量中时,我该如何修改我的代码?

override func didMoveToView(view: SKView) {

    func test()->Int {
    let realm = try! Realm(configuration: Realm.Configuration(inMemoryIdentifier: "DicData"))
    let results = realm.objects(DBData).filter("id == 3")

    print("results: \(results)")        
}

class DBData: Object {
    dynamic var id = 0
    dynamic var name = ""
    dynamic var code = ""
}

1 个答案:

答案 0 :(得分:0)

您在这里指的是内存领域的章节,并已设置您的配置以使用它们。 内存中域不是文件。它只存在于内存中,实际上并没有写入磁盘。

如果你有一个准备好的文件,你想要与你的应用程序捆绑在一起,你需要确保它是你的Xcode相应目标的复制文件构建阶段的一部分项目

然后,您可以最初通过NSFileManager将应用程序包中的文件复制到可以修改副本的路径。

let defaultURL = Realm.Configuration.defaultConfiguration.fileURL!
let bundleURL = NSBundle.mainBundle().URLForResource("DicData", withExtension: "realm")!
do {
    try NSFileManager.defaultManager().copyItemAtURL(bundleURL, toURL: defaultURL)
} catch {}
}