【问题标题】:Xcode 7 "Extra argument 'error' in call" Core Data Error [duplicate]Xcode 7“调用中的额外参数'错误'”核心数据错误[重复]
【发布时间】:2016-03-23 04:23:44
【问题描述】:

我在试验 Xcode Core Data 时遇到了一个问题。

这是我使用的教程的链接:LINK

我还想提一下,我尝试在谷歌上搜索它,但没有为自己弄清楚。希望你们中的一个可以在这里帮助我。

错误线

以下代码行:“var results:NSArray = context.executeFetchRequest(request, error: nil)” 一直给我警告“调用中的额外参数'错误'”

我尝试解决此问题的步骤:

  • 尝试捕捉
  • 使用 Xcode 7

我的代码:

import UIKit
import CoreData

class vcMain: UIViewController {

    @IBOutlet var txtUsername: UITextField!
    @IBOutlet var txtPassword: UITextField!

    @IBAction func btnSave(){
        let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
        let context:NSManagedObjectContext = appDel.managedObjectContext

        let newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as NSManagedObject

        newUser.setValue("Test Username", forKey: "username")
        newUser.setValue("Test Password", forKey: "password")

        //saves
        do {
            try context.save()
        } catch {}


        print(newUser)
        print("Object Saved.")
    }

    @IBAction func btnLoad(){
        let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
        let context:NSManagedObjectContext = appDel.managedObjectContext

        let request = NSFetchRequest(entityName: "Users")
        request.returnsObjectsAsFaults = false;

        // currently being worked on to restore saved data

        var results:NSArray = context.executeFetchRequest(request, error: nil)
        if (results.count > 0) {
            for res in results{
                print(res)
            }
        } else {
            print("0 results returned... Potential 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.
    }
}

【问题讨论】:

    标签: swift core-data xcode7


    【解决方案1】:

    此 API 不带附加参数。 swift中的原型是-

    func executeFetchRequest(_ request: NSFetchRequest) throws -> [AnyObject]
    

    如果有任何问题,此调用可能会引发异常。因此,您需要将其包含在 do..try 中并根据需要处理异常。

    换行

       var results:NSArray = context.executeFetchRequest(request, error: nil)
    

       var results:NSArray = context.executeFetchRequest(request)
    

    【讨论】:

    • 我已经尝试删除“error: nil”参数,尽管它仍然给我带来了问题。我假设我应该使用 do+try+handle 来做到这一点,但即使在那之后它给了我更多的错误。也许我现在没有写出来......我稍后会回来发布那篇文章。
    猜你喜欢
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多