我有这个功能来加载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)
答案 0 :(得分:0)
你强制在你的代码中解缠两次,当你可以干净的方式做到这一点。请检查此https://stackoverflow.com/a/39455186/1585121
这可能是运行时崩溃的原因。
optionnal值可以包含可选类型的a值,也可以不包含任何内容。
你对编译器说“这将永远有一个值”,而实际上你无法知道你的情况。也许你给NSUrl的字符串是无效的例子?它返回零?
你没有提供很多关于你问题的信息,所以我们无法准确地告诉你,但我的猜测是url或数据,你强行解包的选项,在运行时以nil结束。