【发布时间】:2016-02-16 14:20:42
【问题描述】:
我正在尝试快速使用核心数据。 我得到了
Nil 与预期的参数类型 '()' 不兼容,并且 call 可以抛出,但是没有标记'try',错误没有处理
关于“context.save(nil)”
和
调用中的额外参数“错误” 关于“var 结果:NSArray = context.executeFetchRequest(request, error:nil)”
发生了什么?
import UIKit
import CoreData
class vcMain: UIViewController {
@IBOutlet var txtUsername: UITextField!
@IBOutlet var txtPassword: UITextField!
@IBAction func btnSave(){
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext
var newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject
newUser.setValue("Test Username", forKey: "username")
newUser.setValue("Test Password", forKey: "password")
print(newUser)
print("SAVED")
context.save(nil)
}
@IBAction func btnLoad(){
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext
var request = NSFetchRequest(entityName: "Users")
request.returnsObjectsAsFaults = false;
var result: NSArray = context.executeFetchRequest(request, error:nil)
// - (nullable NSArray *)executeFetchRequest:(NSFetchRequest *)request error:(NSError **)error;
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
【问题讨论】:
-
您在 Xcode 7 中使用 Swift 1。但 Xcode 7 附带 Swift 2。将代码转换为 Swift 2。对于您的特定案例搜索,已经有示例。