我得到以下代码来加载存储的数据:
func loadLevel(){
let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
let context:NSManagedObjectContext = appDel.managedObjectContext
let request = NSFetchRequest(entityName: "Level")
request.returnsObjectsAsFaults = false
do{
let results:NSInteger = try context.executeFetchRequest(request)
level = results
}catch{
print("Error")
}
}
在我试图将数据存储在variabel结果中的行中,我得到以下错误:
无法转换类型' [AnyObject]'的值指定类型' NSInteger' (又名' Int')
我知道我没有正确地进行错误处理,因为它应该是正确的。那是第二步'在我的名单上。希望你能解决我的第一个问题。
答案 0 :(得分:0)
executeFetchRequest
返回一个结果数组,因为提取可以并且通常会返回多个结果。这些结果可以是不同类型,具体取决于获取请求的配置方式。因此返回类型为[AnyObject]
。
您尝试将获取结果分配给单个NSInteger
。你不能像这样分配一个AnyObject
数组。您的结果将是Level
个实例的零个或多个实例,NSManagedObject
的实例或您为该实体配置的自定义子类的实例。
你应该做的是:
results
更改为[AnyObject]
Level
Level
的任何属性中获取包含所需整数的整数值。