Json只在手表套件上坠毁

时间:2017-01-13 16:40:56

标签: swift watchkit apple-watch

我有这个功能来加载Json,在iPhone和watchkit模拟器上工作正常,但是当我在手表上安装它时会崩溃。为什么?

func get(){

   let url = NSURL(string: "http://www.ddd.com/xxx.php")
   let data = NSData(contentsOf: url! as URL)
   values = try! JSONSerialization.jsonObject(with: data! as Data, options: JSONSerialization.ReadingOptions.mutableContainers)  as! NSMutableArray
}

debug:

  

dnssd_clientstub ConnectToServer:connect() - >没有尝试:1
  路径失败:/ var / run / mDNSResponder Socket:7 Err:-1 Errno:1不允许操作
  nw_resolver_create_dns_service_on_queue DNSServiceCreateConnection失败:ServiceNotRunning(-65563)

     

函数签名特化<保留脆弱属性,Arg [1] = [Closure传播:来自@callee_owned的重新提取thunk帮助器(@unowned Swift.UnsafeBufferPointer) - > ()@callee_owned(@unowned Swift.UnsafeBufferPointer) - > (@out()),参数类型:[@callee_owned(@unowned Swift.UnsafeBufferPointer) - > ()]> Swift.StaticString.withUTF8Buffer< A>的通用专业化((Swift.UnsafeBufferPointer) - > A)

1 个答案:

答案 0 :(得分:0)

你强制在你的代码中解缠两次,当你可以干净的方式做到这一点。请检查此https://stackoverflow.com/a/39455186/1585121

这可能是运行时崩溃的原因。

optionnal值可以包含可选类型的a值,也可以不包含任何内容。

你对编译器说“这将永远有一个值”,而实际上你无法知道你的情况。也许你给NSUrl的字符串是无效的例子?它返回零?

你没有提供很多关于你问题的信息,所以我们无法准确地告诉你,但我的猜测是url或数据,你强行解包的选项,在运行时以nil结束。