gpt4 book ai didi

ios - 无法使用类型为 "save"的参数列表调用 "(nil)'

转载 作者:行者123 更新时间:2023-11-28 21:44:24 26 4
gpt4 key购买 nike

需要打击代码方面的帮助。刚刚更新到 Xcode 7 beta

我收到以下错误“无法使用类型为”(nil)' 的参数列表调用“保存”。这在 IOS 6 中有效

import UIKit
import CoreData

class ItemViewController: UIViewController {
@IBOutlet weak var textFieldDiveNumber: UITextField!
@IBOutlet weak var textFieldDiveDate: UITextField!
@IBOutlet weak var textFieldDiveLocation: UITextField!


override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
}
@IBAction func saveTapped(sender: AnyObject) {

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate

let contxt: NSManagedObjectContext = appDel.managedObjectContext
let en = NSEntityDescription.entityForName("List", inManagedObjectContext: contxt)

var newItem = Model(entity: (en)!, insertIntoManagedObjectContext: contxt)

newItem.divenumber = textFieldDiveNumber.text!
newItem.divedate = textFieldDiveDate.text!
newItem.divelocation = textFieldDiveLocation.text!

contxt.save(nil)



self.navigationController?.popToRootViewControllerAnimated(true)
}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}



}

最佳答案

自上周一以来已多次询问此问题,但从 SE iOS 应用程序中查找和标记重复项很麻烦,所以...

在 Swift 2 中,NSManagedObjectContextsave() 方法被标记为 throws,因此您必须处理由此产生的任何错误. (并且您不会将错误指针作为参数传递。)

您的 Swift 1 代码忽略了错误; Swift 2 等价物是一个空的 catch:

do {
try context.save()
} catch {
// you can go about your business. move along.
}

不过,忽略错误并不是一个好主意。如果您不想通过在该 catch 中做一些有用的事情来使用户可恢复错误,只需计划在错误时崩溃:

try! context.save()

关于ios - 无法使用类型为 "save"的参数列表调用 "(nil)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30832930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com