2016-12-01 6 views
4

こんにちは私は以下のコードに問題があります。具体的には、if letステートメントは、NSPeristentStoreResultから関連しないタイプ[Cast]へのキャストを警告します。私はSwift 3.01を使用しています。NSPersistentStoreResultを配列にキャスト

これは簡単であるようです。私が従う本はSwiftの以前のバージョンを使って書かれました。あなたの寛容に感謝します。代わりに​​の

func demo(){ 

let request = NSFetchRequest<Item>(entityName: "Item") 

    do { 
    if let items = try CDHelper.shared.context.execute(request) as? [Item] { 
     for item in items { 
      if let name = item.name { 
       print("Fetched Managed Object = '\(name)'") 
      } 
     } 
    } 
    } catch { 
    print("Error executing a fetch request: \(error)") 
    } 
} 

答えて

7

使用fetch()

if let items = try CDHelper.shared.context.fetch(request) 
... 

またはあなたのコンテキストにperformを使用します。

CDHelper.shared.context.perform { 
     let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest()    
     let items = try! fetchRequest.execute() 
     for item in items { 
      if let name = item.name { 
       print("Fetched Managed Object = '\(name)'") 
      } 
     } 
} 
関連する問題