大佬教程收集整理的这篇文章主要介绍了ios – executeFetchRequest抛出致命错误:NSArray元素无法匹配Swift Array Element类型,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import UIKit import CoreData class Contact: NsmanagedObject { @Nsmanaged var name: String @Nsmanaged var email: String class func execute(){ let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegatE) let context:NsmanagedObjectContext = appDel.managedObjectContext! let entityDescripition = NSEntityDescription.entityForName("Contact",inManagedObjectContext: context) let contact = Contact(entity: entityDescripition!,inserTintoManagedObjectContext: context) contact.name = "john Apleesee" contact.email = "john@apple.com" context.save(nil) let fetch:NSFetchrequest = NSFetchrequest(entityName: "Contact") var result = context.executeFetchrequest(fetch,error: nil) as [Contact] let firstContact = result[0] as Contact // <<-- error ! println("\(firstContact.Name)") println("\(firstContact.email)") } }
当我跑:
Contact.execute()
那么编译器会抛出这个错误:
Fatal error: NSArray element Failed to match the Swift Array Element type
当我尝试从数组中获取值时:
let firstContact = result[0] as Contact
我猜问题在executeFetchrequest.在Objective-c上,executeFetchrequest的返回类型是NSArray.现在在Swift上,返回类型是[AnyObject]?
我试图投掷[AnyObject]?结果NSArray,但Xcode说:
CAnnot convert the expression's type '[AnyObject]?' to type 'NSArray'
我做错了什么?
我在用着:
Xcode 6.0(6A313)GM和
OSX 10.9.4
更新:
———–
如果我将executeFetchrequest结果作为可选数组,并使用[NsmanagedObject]而不是[Contact],它可以工作.
if let result: [NsmanagedObject]? = context.executeFetchrequest(fetch,error: nil) as? [NsmanagedObject] { let firstContact: NsmanagedObject = result![0] let name = firstContact.valueForKey("name") as String let email = firstContact.valueForKey("email") as String println("\(Name)") println("\(email)") }
updatE2:
———–
当使用您的NsmanagedObject类未实现实体实例时,会出现这种问题.有几个不同的原因为什么会这样,所有这些都集中在“核心数据找不到在该数据模型中的类行上为该实体指定的类”.
可能性之中:
– 您为Swift类指定了错误的包
– 你忘了指定课程
– 你拼错了名字
在我的情况下,我忘了在她的答案中将班级指定为POB表演.
以上是大佬教程为你收集整理的ios – executeFetchRequest抛出致命错误:NSArray元素无法匹配Swift Array Element类型全部内容,希望文章能够帮你解决ios – executeFetchRequest抛出致命错误:NSArray元素无法匹配Swift Array Element类型所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。