【发布时间】:2016-03-15 15:56:44
【问题描述】:
可以帮助我解决 SwiftCoreDataHelper.swift 中的以下三个错误。我正在使用 xcode 7,但它似乎是旧版本 xcode 的代码。提前致谢。
1 . . .
行错误:让项目:NSArray = managedObjectContext.executeFetchRequest() 错误:调用可以抛出,但它没有用'try'标记并且错误 不处理
class func fetchEntities(className:NSString, withPredicate predicate:NSPredicate?, managedObjectContext:NSManagedObjectContext)->NSArray{
let fetchRequest:NSFetchRequest = NSFetchRequest()
let entetyDescription:NSEntityDescription = NSEntityDescription.entityForName(className as String, inManagedObjectContext: managedObjectContext)!
fetchRequest.entity = entetyDescription
if predicate != nil {
fetchRequest.predicate = predicate!
}
fetchRequest.returnsObjectsAsFaults = false
let items: NSArray = managedObjectContext.executeFetchRequest(<#T##request: NSFetchRequest##NSFetchRequest#>)
return items
}
2 。 . .
行错误:如果 managedObjectContext.save(nil) {
错误:Nil 与预期的参数类型 '()' 不兼容
class func saveManagedObjectContext(managedObjectContext:NSManagedObjectContext)->Bool{
if managedObjectContext.save(nil) {
return true
}
else {
return false
}
}
3 . . .
行错误:if storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error:&error) != nil {
错误:上下文类型“[NSObject : AnyObject]”不能与 数组字面量
if storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error:&error ) != nil {
if error != nil {
print(error!.localizedDescription)
abort()
}
}
【问题讨论】:
-
对不起。新手来了感谢指正
-
说清楚每一行代码的哪一行会产生编译错误。
-
"调用可以抛出,但是没有标记'try'并且错误没有被处理"和"Nil与预期的参数类型不兼容'()'" 表示您的代码不适应 Swift 2 中的新错误处理。您会发现许多与该主题相关的问答,尤其是第一个错误信息。例如:Swift 2 ( executeFetchRequest ) : error handling。我强烈建议您阅读当前 Swift 文档中有关错误处理的内容。