iCloud 状态更改时我的应用程序崩溃

Posted

技术标签:

【中文标题】iCloud 状态更改时我的应用程序崩溃【英文标题】:My App crashes when iCloud status changes 【发布时间】:2014-10-13 12:38:19 【问题描述】:

我知道有一个类似的问题,但 OP 似乎认为他的问题只是在模拟器上,所以不是这样的问题......但我认为我的问题在这两个方面。

我在为 iCloud 存储调整应用程序时遇到问题(尝试观察 NSUbiquityIdentityDidChangeNotification 时)。我看不出我的代码有什么问题,所以......

...经过数小时的头撞墙后,我在 Xcode (v6.1 6A1046a) 中建立了一个 项目来尝试缩小范围。看来这确实是个很基础的问题……

我在这个新项目中唯一做的事情是:

    为“键值存储”和“iCloud”启用 iCloud 功能 文档(使用默认容器)- 没有错误消息,似乎设置得很好。 在 IB 中为提供的视图控制器添加标签和按钮。 为两者添加一个 IBOutlet 并连接一个 IBAction 以在按下时更改标签文本。

为清楚起见,我添加到空的“单一视图应用程序”模板的代码是:

@IBOutlet weak var label: UILabel!
@IBOutlet weak var button: UIButton!

@IBAction func buttonPressed(sender: AnyObject) 
    self.label.text = "You pressed the button"

因此,如果我在模拟器或设备上从 Xcode 运行项目,或者直接在设备上运行项目,它会正常启动并且按钮可以正常工作 - 正如您所期望的那样......

问题是:

如果我从 Xcode 在设备上运行并且我转到设备上的 Settings->iCloud->iCloud Drive 并切换我的应用程序的开关(从/到任一状态),应用程序就会崩溃。除了这个,我没有收到任何反馈:

如果我直接在设备上运行应用程序并尝试切换 iCloud Drive 设置,当我返回应用程序时,它似乎会重新启动(视图和 label.text 一起被重置 - 两者都没有发生如果我只是访问设置而不触摸开关)。

它还有完全冻结我的设备的习惯,这有点刺激。

我是 iCloud 开发的新手,所以我想我可能遗漏了一些非常基本的东西......

正如我所说,这是一个只有几行附加代码的空项目,所以这可能不是我做过的事情。这将它限制在我没有做过的事情上。我正在尝试遵循尽可能多的教程以及尽可能多的苹果文档。我只是看不到我可能忽略的任何明显步骤。

除非这是预期的行为,或者我猜是 Apple 问题。

感谢您的帮助 - 这让我发疯了!

【问题讨论】:

【参考方案1】:

当您更改 iCloudDrive 状态时,ios 会终止您的应用程序。这是标准的 iOs 行为,您可以使用内置应用程序(例如 Safari)进行检查。

【讨论】:

以上是关于iCloud 状态更改时我的应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

从 icloud 打开文件时,Swift 4 应用程序崩溃

iCloud保存数据与UIDocument崩溃

QPrinter 单击按钮时我的程序崩溃为啥?

使用 addView() 时我的应用程序崩溃

重新加载表数据时我的应用程序崩溃[关闭]

Android:离线时我的应用程序不断崩溃