2017-03-12 11 views
0

キーの特定の値を編集できるように、CoreDataストアから特定のItemを取得しようとしています。編集するエンティティが選択された別のViewControllerで編集が行われます。managedObjectID throwing "Unresolved Identifier"エラー

元のView Controllerにprepare(for segue:)があり、uriRepresenation()のobjectIDメソッドを使用して、選択したエンティティのobjectIDをURLとして渡します。これは、オブジェクトIDをNSManagedObjectIDとして格納する方法を把握できなかったためです(タイプミスマッチのエラーが発生しました)。

URLが2つのビューコントローラの間を通過するようになったので、desitantionビューコントローラには以下のコードがあります。

override func viewDidLoad() { 
    toggleDatePicker() 
    self.tableView.tableFooterView = UIView() 
    let editableObjectID = managedObjectID(forURIRepresentation: editableObjectURL!) 
    let editableEntity = context.object(with: editableObjectID!) 
} 

そしてライン:

let editableObjectID = managedObjectID(forURIRepresentation: editableObjectURL!) 

がmanagedObjectID "未解決識別子の使用を "投げる""

私がきたRここに壁に入っていて、これを理解することができないようです。 The API documentationはこれが実行可能であるべきであると示唆していますが、参照するメソッドが存在しないようです。

どのようなご提案も歓迎いたします。

+1

からストアコーディネータを得ることができますか?その後、それを取得する必要はありません。 – Paulw11

+0

私はそれをしようとすると、変数を保持する変数を宣言しようとするとエラーが発生します。それはUITableViewCellから来ているので、別のView Controllerを使用しているカスタムCellに取り込まれています。それは私がdidSelectRowを使用してトランジションをトリガーするので、私がそれを行うと考えることができる唯一の方法です。 – boywithaxe

答えて

1

managedObjectID(forURIRepresentation:)は、persistentStoreCoordinatorのメソッドです。あなたはちょうど `NSManagedObject`自体を通過しないのはなぜmanagedObjectContext(プロパティpersistentStoreCoordinator

let editableObjectID = context.persistentStoreCoordinator.managedObjectID(forURIRepresentation: editableObjectURL!) 
関連する問題