我正在尝试转换此代码
var request = NSFetchRequest(entityName: "ItemModel")
var error: NSError?
var results : NSArray = managedObjectContext!.executeFetchRequest(request, error: &error)!
for res in results
{
println(res)
}
self.dismissViewControllerAnimated(true, completion: nil)
}
对于我在SWIFT2中的应用来说,却没有运气。这是我尝试进行转换。
do {
let results = try self.context!.executeFetchRequest(fetchRequest) as! [ItemModel]
} catch {
fatalError("getItem error: /(fetchError.localizedDescription)")
}
}
我试图用它来从我的名为Item Model的核心数据中获取数据,但是却很费劲。有人知道我在做什么错吗?我的新代码没有错误,但是没有运行。
先感谢您
最佳答案
尝试这个:
func fetchItems() -> [NSManagedObject]? {
let managedContext = // your context here
let fetchRequest = NSFetchRequest(entityName: "ItemModel")
do {
let results = try managedContext.executeFetchRequest(fetchRequest)
return results as? [NSManagedObject]
} catch let error as NSError {
print("Could not fetch \(error), \(error.userInfo)")
}
return nil
}
然后根据函数的结果组装您的
ItemObject
数组。您的对象没有以ItemObject
的形式存储在数据库中,而是被转换为NSManagedObject
的,您必须在从数据库中获取它们后重新进行转换。例如,假设您的ItemObject类如下所示:
class ItemObject {
var name : String
var someData : NSData
}
您将这样重新创建这些项目:
func convertObjects(objects: [NSManagedObject]) -> [ItemObject] {
var itemObjects = [ItemObject]()
for object in objects {
let itemObject = ItemObject()
itemObject.name = object.valueForKey("NAME_KEY") as? String ?? "DEFAULT_VALUE"
itemObject.someData = object.valueForKey("DATA_KEY") as? NSData ?? NSData()
itemObjects.append(itemObject)
}
return itemObjects
}
关于ios - 通话中出现其他错误? Swift 2 Core Data应用程序问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36364438/