Apple手表应用程序不在设备上工作

时间:2016-07-14 10:09:34

标签: ios swift watch-os-2

我正在为WatchOS开发新的应用程序,而应用程序在模拟器上正常工作,它在实际设备上崩溃,没有任何错误日志。首先,我认为它可能是我的手表和提交的应用程序审查,它被拒绝,因为它在实际设备上崩溃。手表的代码非常简单,它只是发送HTTP请求而且全部都是。

override func willActivate() {
        // This method is called when watch view controller is about to be visible to user

        let request = NSURL(string: "[MY SERVER URL]")
        var response = try! String(contentsOfURL: request!)

        if response == "X"{
            response = ":D"
        }

        watch_text.setText(response)

        super.willActivate()
    }

1 个答案:

答案 0 :(得分:0)

手头有两个问题:

  • 阻止应用

    您正在willActivate()中进行同步网络请求,并阻止了用户界面。用户正在等待您的应用加载,但他们可能需要等待很长时间才能完成或失败网络请求。

    除了这是一种消极体验之外,你还没有考虑操作系统如何它认为它被挂起时

    您应该use NSURLSession to load your URL,并在其完成处理程序中设置标签。

  • 强制展开并忽略错误

    您应该处理错误和零选项,而不是忽略错误和强制解包选项。

    只要您看到!,就会将其视为您的代码在发生意外情况时崩溃的机会。

  

我认为可能是我的手表

如果它对您的手表不起作用,则可能无法在另一块手表上使用。

如果某些东西不起作用(按您期望的方式),则更有可能是软件问题(使用您的代码),而不是手表的硬件问题。