以 CKException 类型的未捕获异常终止
Posted
技术标签:
【中文标题】以 CKException 类型的未捕获异常终止【英文标题】:terminating with uncaught exception of type CKException 【发布时间】:2015-07-02 18:25:26 【问题描述】:我不知道为什么,但是当我尝试将 CKRecord 保存在我的数据库中时,我的应用程序不断崩溃,并且我收到此错误消息,“以未捕获的 CKException 类型的异常终止。”任何输入将不胜感激。这是我的代码:
func saveCountryMood(countryToSave:String)
// Create CK record
let newRecord:CKRecord = CKRecord(recordType: realCurrentCountry)
newRecord.setValue(countryToSave, forKey: "Country")
// Save record into public database
if let database = self.publicDatabase
database.saveRecord(newRecord, completionHandler: (record:CKRecord!, error:NSError!) -> Void in
// Check for error
if error != nil
// There was an error
NSLog(error.localizedDescription)
else
// There was no error
dispatch_async(dispatch_get_main_queue())
// Refresh table
self.retrieveCountryMoods("")
)
【问题讨论】:
提供有关异常的更多详细信息。哪条线路导致崩溃?错误信息是什么? 这一行崩溃:let newRecord:CKRecord = CKRecord(recordType: realCurrentCountry) 确切的错误信息如下:libc++abi.dylib: terminating with uncaught exception of type CKException 错误信息一定有更多内容。 啊,你是对的,我的错在这里----由于未捕获的异常'CKException'而终止应用程序,原因:'recordType(美国)包含无效字符'***首先抛出调用堆栈: 【参考方案1】:您的记录类型中有一个空格。你可以用别的东西代替它。
您必须注意,在生产中您不能创建新的记录类型。所有记录类型必须已经存在(在开发时创建)。因此,必须在开发时创建 realCurrentCountry 的所有不同值。
【讨论】:
以上是关于以 CKException 类型的未捕获异常终止的主要内容,如果未能解决你的问题,请参考以下文章
Swift:以 NSException 类型的未捕获异常终止
Swift 项目以 NSException 类型的未捕获异常终止
以 NSException 类型的未捕获异常终止 - Xcode
以 NSException Timer Swift Crash 类型的未捕获异常终止