Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift3错误:键入';NSFastEnumerationIterator.Element';(aka';Any';)不符合协议';任何对象';_Ios_Swift_Xcode_Swift3_Anyobject - Fatal编程技术网

Ios Swift3错误:键入';NSFastEnumerationIterator.Element';(aka';Any';)不符合协议';任何对象';

Ios Swift3错误:键入';NSFastEnumerationIterator.Element';(aka';Any';)不符合协议';任何对象';,ios,swift,xcode,swift3,anyobject,Ios,Swift,Xcode,Swift3,Anyobject,因此,我试图将我的待办事项列表应用程序更新为swift 3/iOS 10,但在更新时遇到了此错误。我查了一下互联网和StackOverflow,发现其他人也有这个问题,但那里的解决方案对我没有帮助。 这只是一个文件,负责插入核心数据 这是该文件的代码: import UIKit import CoreData var taskMgr: TaskManager = TaskManager() struct task { var name = "not defined" var

因此,我试图将我的待办事项列表应用程序更新为swift 3/iOS 10,但在更新时遇到了此错误。我查了一下互联网和StackOverflow,发现其他人也有这个问题,但那里的解决方案对我没有帮助。 这只是一个文件,负责插入核心数据

这是该文件的代码:

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)
    }
  }

}
导入UIKit
导入CoreData
var taskMgr:TaskManager=TaskManager()
结构任务{
var name=“未定义”
var desc=“未定义”
}
类TaskManager:NSObject{
var tasks=[task]()
var persistenceHelper:persistenceHelper=persistenceHelper()
重写init(){
让我们来看看:NSArray=persistenceHelper.list(实体:“任务”)
对于res:testasks中的AnyObject{
tasks.append(任务(名称:res.valueForKey(“name”)as!String,desc:res.valueForKey(“desc”)as!String))
}
}
func addTask(名称:String,说明:String){
var dicTask:Dictionary=Dictionary()
dicTask[“name”]=名称
口述任务[“描述”]=描述
if(persistenceHelper.save(实体:“任务”,参数:dicTask)){
tasks.append(任务(名称:name,描述:desc))
}
}
func removeTask(索引:Int){
let值:String=tasks[index].name
if(persistenceHelper.remove(实体:“任务”,键:“名称”,值:值)){
任务。删除(位于:索引)
}
}
}
所以它在第18行给出了一个错误,如下所示:

类型“NSFastEnumerationIterator.Element”(也称为“Any”)不符合协议“AnyObject”

有人能帮我吗?
谢谢:)

请像这样更新第18行。我希望这对你有用

  for res:AnyObject in tempTasks as [AnyObject]

请像这样更新第18行。我希望这对你有用

  for res:AnyObject in tempTasks as [AnyObject]

像这样强制
NSArray
是非常罕见的,而且这样强制
AnyObject
的可能性更小。首先删除这些类型,让系统为您执行类型推断。如果您仍然有问题,请将其简化为MCVE()。在您编写问题时,它包含大量无关代码(addTask、removeTask),并且缺少关键代码(persistenceHelper.list的定义)。@RobNapier it's just give's的许多其他错误,如“没有‘值’候选项生成预期的上下文结果类型‘字符串’”。您知道如何修复它吗?如上所述,请简化为MCVE以便我们提供帮助。感谢您告诉我们,尽管您的链接不起作用:/Thanky无论如何,您这样强制
NSArray
是非常罕见的,更不可能这样强制
任何对象。首先删除这些类型,让系统为您执行类型推断。如果您仍然有问题,请将其简化为MCVE()。在您编写问题时,它包含大量无关代码(addTask、removeTask),并且缺少关键代码(persistenceHelper.list的定义)。@RobNapier it's just give's的许多其他错误,如“没有‘值’候选项生成预期的上下文结果类型‘字符串’”。你知道如何修复它吗?如上所述,请减少到MCVE,以便我们可以提供帮助。感谢告诉我们,尽管你的链接不起作用:/无论如何,谢谢