“NSFetchRequest”类型的值没有成员“performFetch”

时间:2016-05-31 14:27:04

标签: swift

我写代码

    var fetchRequest: NSFetchRequest = NSFetchRequest(entityName: "Doctor")
    fetchRequest.predicate = NSPredicate(format: "id != nil")



let sortDescriptors: [NSSortDescriptor] = [(NSSortDescriptor.init(key: "distance", ascending: true)), (NSSortDescriptor.init(key: "lastname", ascending: true))]
fetchRequest.sortDescriptors = sortDescriptors

var error: NSError? = nil

// show error类型'NSFetchRequest'的值没有成员'performFetch'

var fetchSuccessful: Bool = fetchRequest.performFetch(error)

3 个答案:

答案 0 :(得分:1)

@MagdalenaDziesińska:在你的代码中......

var fetchSuccessful: Bool = fetchRequest.performFetch(error)

“performFetch”不存在。要处理错误(错误处理),请将其置于'do-try-catch语句'中,例如你的代码之后......

 var fetchRequest: NSFetchRequest = NSFetchRequest(entityName: "Doctor")
fetchRequest.predicate = NSPredicate(format: "id != nil")

让sortDescriptors:[NSSortDescriptor] = [(NSSortDescriptor.init(key:“distance”,ascending:true)),(NSSortDescriptor.init(key:“lastname”,ascending:true))] fetchRequest.sortDescriptors = sortDescriptors

使用以下do-try-catch语句捕获任何错误并获取获取请求。

do {
        let results = try context.executeFetchRequest(request)
    } catch {
        print("requesting error")
    }

nb:请求是您放置“fetchRequest”的地方

答案 1 :(得分:0)

如果没有上下文,则无法执行获取请求。如果您拥有NSManagedObjectContext实例,则可以将executeFetchRequest(_:)方法用于获取请求。此外,如果您有NSFetchedResultsController实例(由获取请求初始化),则可以使用此控制器的performFetch()方法。您绝对需要阅读更多CoreData https://developer.apple.com/library/watchos/documentation/Cocoa/Conceptual/CoreData/index.html

的文档

答案 2 :(得分:0)

您要找的是executeFetchRequest(_:) var url = jsRoutes.controllers.MyController.ajaxPost(inurlparam).absoluteURL(); var formData = $('#form').serialize(); $.ajax({ url: url, type: "POST", data: formData }).done(function(data) { }).fail(function(data) { }) 而不是使用throws参数。

  

如果Objective-C方法的最后一个非块参数是NSError **类型,则Swift将其替换为throws关键字,以指示该方法可能引发错误。如果Objective-C方法的error参数也是它的第一个参数,Swift会尝试通过从选择器的第一部分删除“WithError”或“AndReturnError”后缀(如果存在)来进一步简化方法名称。如果使用结果选择器声明了另一个方法,则不更改方法名称。 - Using Swift with Cocoa and Objective-C (Swift 2.2) - Error Handling