Swift 中的 executeFetchRequest 致命错误
executeFetchRequest fatal error in Swift
我是 Swift
的新手,在编写一些 Core Data
相关方法的同时我正在努力学习。我需要获取一些实体,这是我为此调用的方法的代码片段:
let results = context.executeFetchRequest(fetchRequest, error: &error) as! [MyCustomEntity]?
if let myEntities = results {
let lastEntity = myEntities.last!
return lastEntity.entityNum.integerValue
}
当我 运行 应用程序时,它在 let lastEntity = myEntities.last!
行崩溃,我在控制台中收到此消息:
fatal error: unexpectedly found nil while unwrapping an Optional value
然而,error
在那个时候是 nil
。我按照一个例子来编写该代码,据我所知, if
语句块只有在有结果时才应该执行……对吗?那里发生了什么?
提前致谢
我假设您收到的数组是空的。您正在正确使用可选绑定来确定您是否收到数组,但这并不能保证您在数组中有元素。
Array
return 上的 last
方法是可选的;它 returns nil
当数组为空时:
/// The last element, or `nil` if the array is empty
var last: T? { get }
您正在解包 myEntities.last
中的 return 值,这意味着当 myEntities
为空数组时您的应用程序崩溃。
为了确保此代码安全,您还需要检查 last
方法中的 return 值。
我是 Swift
的新手,在编写一些 Core Data
相关方法的同时我正在努力学习。我需要获取一些实体,这是我为此调用的方法的代码片段:
let results = context.executeFetchRequest(fetchRequest, error: &error) as! [MyCustomEntity]?
if let myEntities = results {
let lastEntity = myEntities.last!
return lastEntity.entityNum.integerValue
}
当我 运行 应用程序时,它在 let lastEntity = myEntities.last!
行崩溃,我在控制台中收到此消息:
fatal error: unexpectedly found nil while unwrapping an Optional value
然而,error
在那个时候是 nil
。我按照一个例子来编写该代码,据我所知, if
语句块只有在有结果时才应该执行……对吗?那里发生了什么?
提前致谢
我假设您收到的数组是空的。您正在正确使用可选绑定来确定您是否收到数组,但这并不能保证您在数组中有元素。
Array
return 上的 last
方法是可选的;它 returns nil
当数组为空时:
/// The last element, or `nil` if the array is empty
var last: T? { get }
您正在解包 myEntities.last
中的 return 值,这意味着当 myEntities
为空数组时您的应用程序崩溃。
为了确保此代码安全,您还需要检查 last
方法中的 return 值。