2016-07-13 15 views
1

私はRealmをメモ帳アプリケーションとして使用し始め、カスタムクラスの配列(noteTitles)を保存しました。私はオブジェクトとして作成しましたが、私がrealm.objectForPrimaryKey(noteTitles, key: "id")を使用すると、エラーが発生します。 'Note'型の値を期待される引数型Object.Typeに変換できません。メモ用のクラスファイルでは、オブジェクトとして作成しました。ここでSwift 2.2、RealmSwift - 'Note'型の値を期待される引数型Object.Typeに変換できません

は私のViewControllerコードです:

var note: Note! 
let realm = try! Realm() 

@IBOutlet var noteText: UITextView! 
@IBOutlet var noteTitle: UITextField! 

func textViewDidEndEditing(textView: UITextView) { 


    try! realm.write{ 

     realm.add(noteTitles) 



    } 

    print("editing ended") 

} 


override func viewDidLoad() { 
    super.viewDidLoad() 


    self.noteText.delegate = self 

    realm.objectForPrimaryKey(noteTitles, key: "id")// error here 





    // Do any additional setup after loading the view. 
} 

そしてここでは、クラスのノートコードです:

import Foundation 
import RealmSwift 


class Note: Object { 
    var title = "" 
    var content = "" 

override class func primaryKey() -> String? { 
    return "id" 
} 

} 

は助けを事前にありがとうございました。

答えて

4

Realm.objectForPrimaryKey(_:key:)の最初の引数は、取得するオブジェクトのタイプである必要があります。 2番目の引数は、取得するオブジェクトの主キーの値です。例えば

、以下は、そのidプロパティ値C5AD8E58-912E-4C32-B67D-748B0621266Aを持つNote取得します:

realm.objectForPrimaryKey(Note.self, key: "C5AD8E58-912E-4C32-B67D-748B0621266A") 
+0

それがクラッシュし、私の主キープロパティ「idは」オブジェクト注上に存在しないエラーが発生しますが。これについて私は何をしますか? –

+0

私は間違ったIDを入力しましたか、設定する必要がありますか? –

+0

'Note'クラスの' primaryKey() '関数は、プライマリキーにしたいプロパティの名前を返す必要があります。あなたのクラスが持っているプロパティである必要があります。上記で共有したコードでは、 'id'がプライマリキーのプロパティだと言っていますが、その名前でプロパティを宣言していません。 – bdash

関連する問題