我写代码
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)
答案 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