2016-08-06 1 views
0

私のアプリでCore Dataを使用しています。私はcoredataからの結果を取り戻すことに苦労している。私のエンティティ名はWondersです。'NSPersistentStoreResult'から関連しないタイプ '[entity]'へのキャストは常に失敗します

これでレコードを正常に保存できました。今私はそれをフェッチしているとき私は次のコードを使用しています。

override func viewWillAppear(animated: Bool) { 
    let wondersAppdel:AppDelegate=UIApplication.sharedApplication().delegate as!AppDelegate 
    let WondersContext:NSManagedObjectContext = wondersAppdel.managedObjectContext 
    let wondersFetchRequest = NSFetchRequest(entityName: "Wonders") 
    wondersFetchRequest.predicate=NSPredicate(format: "wonderShow = %@", true) 
    let sortDescriptor = NSSortDescriptor(key: "wonderName", ascending: true) 
    wondersFetchRequest.sortDescriptors=[sortDescriptor] 



    do { 
     if 
      let wonderFetchresults = try WondersContext.executeRequest(wondersFetchRequest) as? [Wonders]{ 
     wonders = wonderFetchresults 
     } 
     else{print("else if result...try")} 
    } 
    catch{ 
     fatalError("there was an error fatching the list of gruops!")} 
     self.tableview.reloadData() 
    } 

答えて

0

NSFetchRequestを実行するときは、NSManagedObjectContextのexecuteFetchRequestメソッドを呼び出す必要があります。スウィフト3.0のよう

try WondersContext.executeFetchRequest(wondersFetchRequest) 
+0

うまく働いてくれてありがとう – mahdiTGK

+0

私はソーシャルネットワークに興味があります。おなじみで友人になるために – mahdiTGK

+0

私のtwitterハンドルは@ahmedonawaleです –

2

、カスタムNSManagedObjectサブクラスで自動生成fetchRequest()機能を利用することができません:

let request: NSFetchRequest<Wonders> = Wonders.fetchRequest() 
let allWonders = try WondersContext.fetch(request) 

...と結果をキャストする必要はもうあり関連するクラス(またはより正確には、関連するクラスのオプションの配列)への配列キャストを自動的に返します。述語およびソート記述子は、必要に応じて通常の方法で追加することができます。また、自動的に生成されるfetchRequest()関数に直接関連するオブジェクトにプログラムすることもできます。

関連する問題