問題タブ [nsuseractivity]

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.

0 投票する
1 に答える
236 参照

ios - Xcode 11.4/iOS 13.4 では、NSUserActivity が常に setSuggestedInvocationPhrase に応答するとは限らないことがわかりました

オブジェクトを正常に作成および更新NSUserActivityして、Siri ショートカットと Handoff を提供するプロジェクトがあります。今日、久しぶりにこのコードに戻ってきましたが、デバイスにデバッグ ビルドがあり、Springboard から実行すると、認識されないセレクター メッセージでクラッシュすることに少し驚きました。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSUserActivity setSuggestedInvocationPhrase:]: unrecognized selector sent to instance 0x280083580'

デバッガーに接続して実行すると、このまったく同じバイナリで問題ありません。私は問題が何であるかを見るのにかなり途方に暮れています。非常に単純なテスト アプリを作成しましたが、同じ動作を示します。問題を示す単純な SwiftUI ビューを次に示します。

このコードは常に「setSuggestedInvocationPhrase を呼び出すことができます」と表示されるはずでありデバッガーから実行すると表示されると思います。しかし、アプリをスタンドアロンで起動すると、「setSuggestedInvocationPhrase を呼び出すとクラッシュします」というメッセージが表示されます。代わりは。

他の誰かがこのようなものを見たことがありますか? もしそうなら、ハードウェア上で Xcode 11.4 および/または iOS 13.4 にアップグレードした後に発生し始めましたか? これを iPod Touch、iPhone 11 Pro Max、および iPhone 8 のシミュレーターで再現できました。

現時点ではrespondsToSelector、フレーズを設定する前に明示的にチェックすることでこれを回避していますが、それは長期的にはあまり良い解決策ではありません.