への入力dictionary(fromTXTRecord:)
は、ネットワーク、場合によってはアプリの外部、またはデバイスからのものです。ただし、Apple のドキュメントには次のように記載されています。
... txtData が NSDictionary オブジェクトとして表現できない場合、アサーションは失敗します。
アサーションに失敗すると、プログラマー (私) はエラーを処理する方法がなくなります。これは、外部データを処理するメソッドにとって非論理的なようです。
これを Mac のターミナルで実行すると、次のようになります。
dns-sd -R 'My Service Name' _myservice._tcp local 4567 asdf asdf
iPhone で実行しているアプリがクラッシュします。
dictionary(fromTXTRecord:)
は、TXT レコード データ ( asdf asdf
) がkey=val
フォーム内にあることを期待しています。上記のように、単語に何も含まれていない場合=
、メソッドはそれを解析できず、アサーションに失敗します。
その方法をまったく使用せず、自分自身の解析を実装する以外に、この問題を解決する方法はありません。これは間違っていると感じています。
何か不足していますか?