問題タブ [xcode9.3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - AVAudioPlayer がローカル ファイルをロードする際のアプリ トランスポート セキュリティの問題 - Objective-C、XCode 9
バンドルされた m4a オーディオ ファイルをローカル リソースとして読み込むアプリがあり、長年にわたってうまく機能しています。アプリを iOS 11.3/XCode 9.3 に更新していますが、再生ボタンを押すと iPad で失敗します (iPhone で動作します):
私のコード:
で失敗しますprepareToPlay
。
他の回答を読んで、ATSエラーに関する多くの情報を見つけたので、これをアプリのplistファイルに追加し、クリーンアップし、再構築して実行しましたが、まだエラーが発生しています:
これはローカル リソースであり、ドメインがないため、NSExceptionDomain キーを使用できません。どうすればこれを修正できますか?
注: 明確にするために、このファイルはアプリにバンドルされており、ダウンロードされたことはありません。これは「http」URL ではなく、「file:」URL です。
更新: CFNetworkLogNSURLConnection
を調べたところ、 の音声準備の直前にネットワークに問題が発生していることに気付きましたAppDelegate
。この呼び出しを削除すると、すべてが機能し始めました。両方とも独立して動作するため、何らかの競合が発生しているように見えNSURLConnection
ます。おそらく API のバグでしょうか? これに対する適切な回避策を知っておくとよいでしょう。prepareToPlay
上記の呼び出しを削除することで十分に機能するようになりました。これは、ユーザーがオーディオ ファイルを再生するときに時間がかかるため、理想的ではありません。
別の更新: アプリは明らかな理由もなく今日動作を開始しました。最後に試してから何も変更していませんでした。残念ながら、現時点では修正が機能するかどうかを判断できません! 確かに、私の plist キーは私の iOS 11.3 シミュレーターで動作しているようです。
swift - 二項演算子 '===' はタイプ 'Self.Element' および 'AnyObject' のオペランドには適用できません
次のエラーが表示されます:二項演算子 '===' は、行のタイプ 'Self.Element' および 'AnyObject' のオペランドに適用できません: return contains { $0 === object }
.
object
の型にキャストする方法はありIterator.Element
ますか? この行は、が として表現可能でなければならwhere Iterator.Element: AnyObject
ないという意味ではありませんか?Iterator.Element
AnyObject
この件についてご協力いただきありがとうございます。