为啥我的应用在使用 cloudkit 时会崩溃?

Posted

技术标签:

【中文标题】为啥我的应用在使用 cloudkit 时会崩溃?【英文标题】:Why did my app crash when using cloudkit?为什么我的应用在使用 cloudkit 时会崩溃? 【发布时间】:2015-04-12 22:13:12 【问题描述】:

当我尝试使用 Swift 从 iCloud 加载数据时,应用程序因此错误而崩溃。这是为什么?我似乎找不到错误?

代码:

func LoadEvents() 

        let predicate:NSPredicate = NSPredicate(value: true)
        let query:CKQuery = CKQuery(recordType: "Data", predicate: predicate)
        query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]

        if let database = self.publicDatabase 

            database.performQuery(query, inZoneWithID: nil, completionHandler:  (records:[AnyObject]!, error:NSError!) in

                if error != nil 
                    self.alert("Error: \(error.localizedDescription)", Message: "Make sure iCloud is turned on and you are connected to the internet")   
                 else 
                    dispatch_async(dispatch_get_main_queue()) 
                        self.EventsArray.removeAll(keepCapacity: false)

                        for record in records 
                            let usernameRecord:CKRecord = record as CKRecord     
                            self.EventsArray.insert(usernameRecord.objectForKey("Events") as String, atIndex: 0)
                            println("1")
                        

                        //update data
                        self.collectionView.reloadData()
                    
                
            )        
        

【问题讨论】:

如果只有控制台告诉你问题是什么,嗯? 【参考方案1】:

您正在阅读的记录可能没有名为“事件”的字段。所以 objectForKey 将返回 nil ,它不能转换为字符串。您可以使用as? String 或使用:

if let event = usernameRecord.objectForKey("Events") as? String
    self.EventsArray.insert(event, atIndex: 0)

【讨论】:

以上是关于为啥我的应用在使用 cloudkit 时会崩溃?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 iOS 应用程序在收到推送通知时会崩溃?

为啥我的 iOS 应用程序在尝试 presentModalViewController 时会崩溃?

为啥我的 .NET 应用程序从网络驱动器运行时会崩溃?

为啥我的 iPhone 应用程序的发布版本在安装后第一次运行时会在设备上崩溃?

为啥我在退出我的 Activity 时会崩溃?

为啥我的程序在管理这个 JSON 文件时会崩溃?