web-dev-qa-db-ja.com

UIApplication.sharedApplicationは使用できません

UIViewControllerからアプリデリゲートへの参照を取得しようとしていますが、次のエラーメッセージが表示され続けます。

'sharedApplication()'は使用できません:代わりにビューコントローラーベースのソリューションを適切に使用してください。

私はこの種のメッセージを扱うすべての記事を読んでいますが、サードパーティのフレームワークを使用していないので、私の問題は無関係です。 Today Extensionは私のアプリの一部ですが、エラーが発生するクラスはまったく無関係です。まったく新しいクラスを作成しても、同じエラーが発生し続けます。

http://i.stack.imgur.com/mp2qs.png 私が遊び場で同じことをすると、うまくいきます。何が欠けていますか?

21
DoertyDoerk

問題が解決しました。私は再びアプリのビルド設定に行って、つまずきました

Require Only AppExtension-Safe API

すべてYESに設定されています。ただし、デフォルトはNOです。これをNOに設定すると、エラーが消えました。

これに触れたり、これについて知ったりしたことを覚えていないことは確かですが、幸いにも今はうまくいきます。

65
DoertyDoerk

新しいターゲットを作成してプロジェクト(リモートサービス通知ターゲット)に追加し、ターゲット定義をpodfileに誤って追加したときに、同じエラーが発生しました。

私はサードパーティの通知プラットフォームからの指示に従っていましたが、ターゲット定義をどこに配置するかについては明確ではありませんでした。最初に、Testsターゲット定義と同様に、ターゲット定義をメインターゲット内に追加しました。この間違いが原因でこのエラーが発生しました。

最終的に、リモートサービス通知ターゲット定義をメインターゲットの外にあるpodfileの最後に移動し、それで問題が解決しました。

1
drquiz

質問時から3年後に誰かがこのエラーを経験した場合。 SwiftファイルターゲットメンバーシップにToday Extensionが含まれていないことを確認してください。

1