您好我正在尝试修复SugarRecord,这是使用CoreData和iCloud的好方法。
我使用以下方法收到上述错误:
public func find(finder: SugarRecordFinder) -> SugarRecordResults
{
let fetchRequest: NSFetchRequest = SugarRecordCDContext.fetchRequest(fromFinder: finder)
var objects = [NSManagedObject]()
do{
objects = try self.contextCD.executeFetchRequest(fetchRequest) as! [NSManagedObject]
}
catch
{
}
if objects == nil {
objects = [NSManagedObject]()
}
return SugarRecordResults(results: SugarRecordArray(array: objects), finder: finder)
}
错误在线 - if objects == nil {
虽然搜索网后我找不到办法解决这个问题。如果你能提供帮助,谢谢你。
答案 0 :(得分:1)
executeFetchRequest
总是返回一个数组。如果找不到任何内容,则数组为空。
删除
if objects == nil {
objects = [NSManagedObject]()
}
更好的语法是
public func find(finder: SugarRecordFinder) -> SugarRecordResults
{
let fetchRequest: NSFetchRequest = SugarRecordCDContext.fetchRequest(fromFinder: finder)
do {
let objects = try self.contextCD.executeFetchRequest(fetchRequest) as! [NSManagedObject]
return SugarRecordResults(results: SugarRecordArray(array: objects), finder: finder)
}
catch let error as NSError {
// do error handling
return SugarRecordResults()
}
}