2016-05-07 9 views
0

私はここで参照することにより、RealmSwiftとiOSアプリを開発しています。私は理解していないものをhttps://realm.io/docs/swift/latest/#in-memory-realms そして、私はレルムファイル内のデータの位置(レコードとカラム)を示すことができる方法、です。RealmSwiftから値を文字列として取り出すにはどうすればよいですか?

私はViewController.swiftと同じ場所に保存されているメインフォルダの「DicData.realm」という名前のレルムファイルを保存しました。

DicData.realmのデータは、このようなものである:「結果:結果()」

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

私は以下のコードを実行すると、それだけで、このように印刷されました。フィルタメソッドはちょうど無視されているようです。私が "飛行機"という言葉を取り出して文字列として変数に格納する場合、コードをどのように修正すればよいですか?

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 = "" 
} 
+0

試し '結果= realm.objects(dbdataの).filter($ 0.id == 3)あなたのアドバイスのための'の代わり –

+0

感謝をしましょう。これは "匿名のクロージャ引数がクロージャに含まれていない"というエラーで失敗します。 – vanagar

+0

申し訳ありませんが、私は閉鎖を逃した。 '聞かせて結果= realm.objects(dbdataの)再び.filter({$ 0.id == 3})' –

答えて

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 {} 
} 
+0

ありがとうございました。私は "v0URL"をbundleURLに置き換えてコードを実行しましたが、2行目は次のエラーで失敗しました。 "致命的なエラー:オプション値のアンラッピング中に予期せぬエラーが見つかりました" – vanagar

+0

上記のコードで間違った変数名が修正されました。ファイルがアプリバンドルにコピーされていることを確認しましたか? – marius

+0

ファイルが正しくコピーされていないと思います。私は同じ場所に「DicData.csv」という名前のファイルを同梱し、に二行目を変更した場合、「(DicData「withExtension: 『CSV』)bundleURL = NSBundle.mainBundle()しましょうURLForResource。」!」、私は「ドンエラーは発生しますが、catch {}の内部に書き込んだエラーメッセージが表示されます。 – vanagar

関連する問題