2016-09-16 8 views
1

私はtoDoリストアプリケーションを3/iOS 10にアップデートしようとしていますが、更新時のエラー。私はインターネットとStackOverflowを調べて、他の誰かがこの問題を抱えていることに気がついたが、そこの解決策は私には役に立たなかった。 これは、Core Dataに挿入するためのファイルです。Swift3エラー:タイプ 'NSFastEnumerationIterator.Element'(別名 'Any')がプロトコル 'AnyObject'に準拠していません

これは、そのファイルのコードです:

タイプ 'NSFastEnumerationIterator.Element'(別名「どれ:だから、それはこのようなのを行くライン18上のエラーを与える

import UIKit 
import CoreData 

var taskMgr: TaskManager = TaskManager() 

struct task { 
    var name = "not defined" 
    var desc = "not defined" 
} 

class TaskManager: NSObject { 
    var tasks = [task]() 
    var persistenceHelper: PersistenceHelper = PersistenceHelper() 

    override init(){ 

    let tempTasks:NSArray = persistenceHelper.list(entity: "Task") 
    for res:AnyObject in tempTasks{ 
     tasks.append(task(name:res.valueForKey("name")as! String,desc:res.valueForKey("desc") as! String)) 
    } 
    } 


    func addTask(name:String, desc: String){ 

    var dicTask: Dictionary<String, String> = Dictionary<String,String>() 
    dicTask["name"] = name 
    dicTask["desc"] = desc 

    if(persistenceHelper.save(entity: "Task", parameters: dicTask)){ 
     tasks.append(task(name: name, desc: desc)) 
    } 
    } 

    func removeTask(index:Int){ 
    let value:String = tasks[index].name 

    if(persistenceHelper.remove(entity: "Task", key: "name", value: value)){ 
     tasks.remove(at: index) 
    } 
    } 

} 

')はプロトコル「AnyObject」に準拠していません

C誰でも助けてくれますか? ありがとう:)

+1

このように 'NSArray'を強制する必要があり、' AnyObject'をこのように強制することはあまりありません。これらのタイプを削除し、システムにタイプ推論を実行させます。それでも問題が解決しない場合は、これをMCVE(http://stackoverflow.com/mcve)に減らしてください。あなたの質問を書いたので、無関係なコード(addTask、removeTask)が多く、重要なコード(persistenceHelper.listの定義)がありません。 –

+0

@RobNapier「いいえ '値」候補のような他のエラーは、予想されるコンテキスト結果タイプ' String 'を生成するだけです。あなたはそれを修正する方法を知っていますか? – Jenoah

+0

上記のように、MCVEに協力して助けてください。 –

答えて

7

このように行18を更新してください。これがあなたに役立つことを願っています。

関連する問題