2017-01-13 5 views
-1

私はこの機能を使ってJsonを読み込み、iPhoneとwatchkitシミュレータで正常に動作しますが、時計にインストールするとクラッシュします。どうして?腕時計キットのJsonクラッシュ

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 
} 

デバッグ:

dnssd_clientstub ConnectToServer関数:接続() - >ノー試行:1
失敗したパス:は/ var /実行/ mDNSResponderソケット:7エラー:-1 ERRNO:1操作失敗
nw_resolver_create_dns_service_on_queue DNSServiceCreateConnectionを許可されていない:[脆弱属性を維持ServiceNotRunning(-65563)

機能署名専門<を、Argの[1] =閉鎖プロ@callee_owned(@unowned Swift.UnsafeBufferPointer) - >()から@callee_owned(@unowned Swift.UnsafeBufferPointer) - >(@out())の引数タイプ:[@callee_owned(@unowned Swift.UnsafeBufferPointer ) - >()]> Swift.StaticString.withUTF8Buffer <の一般的な専門のA>((Swift.UnsafeBufferPointer) - > A)

+2

人に推測させないでください。正確なエラーメッセージとはどのような行ですか? – rmaddy

+0

コード内でアンラッピングを2回強制すると、きれいにできます。これを確認してくださいhttp://stackoverflow.com/a/39455186/1585121 –

答えて

0

あなたがそれをきれいに行うことができたときにあなたは、あなたのコード内で二回アンラップ強制方法。これをチェックしてくださいhttps://stackoverflow.com/a/39455186/1585121

これはおそらくランタイムクラッシュの原因です。

optionnal値には、オプションの型の値を含めることも、何も含めることもできません。

あなたは、実際にはあなたのケースでは知ることができないときに "これは常に価値がある"とコンパイラに言う。たとえば、NSUrlに与えた文字列が無効なのでしょうか?そしてそれは何も返さない?

あなたは問題について多くの情報を提供していないので、正確には言えませんが、私の推測では、URLまたはデータ、強制的にアンラップしたオプション名は実行時にnilになります。

+0

私はエラーを追加します。私は道を見つけることができません。 – Joseluis

+0

私はこのエラーがあなたが共有したコードに関係しているとは思わない。しかし、あなたはまだ私が言ったことについてそれを修正する必要があります –