2016-05-19 6 views
0

でフェッチ私は私のデータモデル内の2つのエンティティを持っています!今、私は次のコードをしようとしている特定のAttendance.objectIDコアデータは、オブジェクトID

で製品を取得する必要があります。

func fetchProducts() { 
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

    let managedContext = appDelegate.managedObjectContext 

    let fetchRequest = NSFetchRequest(entityName: "Product") 
    let attendancePredicate = NSPredicate(format: "attendance.objectID == \(currAttendance.objectID)") 
    fetchRequest.predicate = attendancePredicate 

    print("Att = \(currAttendance.name!)") 
    viewTypeSKU.hidden = true 

    do { 
     let results = try managedContext.executeFetchRequest(fetchRequest) 
     products = results as! [NSManagedObject] 
    } catch let error as NSError { 
     print("Could not fetch \(error), \(error.userInfo)") 
    } 

} 

を私はエラーを取得しています:フェッチSELFインサイド'Unable to parse the format string "attendance.objectID ==

+0

currAttendanceは何ですか?あなたはどこからそれをつかんでいますか? – boidkan

+0

'NSPredicate(形式:" attendance.objectID =%@ "、currAttendance.objectID)' – boidkan

+1

を実行してみてください。逆に 'currAttendance.product'を実行して終了させることもできます。 – boidkan

答えて

1

は同等ですNSManagedObjectIDおよびNSManagedObjectに対応する。しかし、取り出すアイテムの.objectIDを実行することはできません。私の理論は、.を実行するときに、.objectIDNSManagedObjectの一部である特定のエンティティの属性および/または関係を探しているからです。私は間違っている可能性があります。

ただし、NSPredicateをこれらのいずれかに切り替えただけで動作します。

NSPredicate(format: "attendance = %@", currAttendance.objectID)

または

NSPredicate(format: "attendance = %@", currAttendance)

関連する問題