私はiOS 8の拡張機能に取り組んでいます。私は多くのマニュアルを読みましたが、どれもアプリに拡張機能を簡単に追加できることを示しており、それで十分だと思われます。
しかし、ここには多くの落とし穴があります:
拡張機能を追加した後、新しい拡張ターゲットを追加したときに作成されたビュー コントローラーにいくつかのクラスをインポートする必要があります。ここでの大きな用途は、それらすべてを追加する必要があることです。巨大なプロジェクトがある場合、それは簡単な作業ではありません。解決策は、拡張ターゲットを選択してから、Build Phases -> Compile Sources でプラス ボタンを押し、ホット キー CMD+A を使用してすべての .m ファイルをターゲットに追加することです。
すべてのファイルを追加した後、一部のメソッドが機能しないことがわかり、次のエラーが表示 されます。
'sharedApplication' is unavailable: not available on iOS (App Extension)
したがって、解決策はチェックするマクロであり、コードifndef Extension
を呼び出すことができsharedApplication
ます。#import <Foundation/Foundation.h>
対#import <UIKit/UIKit.h>
。したがって、私はこの問題を理解していませんが、交換Foundation
するUIKit
とうまくいき、関連するすべての問題がなくなります。- ココアポッド。私たち全員が CocoaPods を使用しているため、拡張機能がプロジェクト コードの一部を使用する必要があり、そのコードが CocoaPods ライブラリを使用している場合は
link_with 'ProjectTarged', 'ExtensionTarget'
、Pod ファイルに追加してpod install
再度作成し、ライブラリを新しい拡張ターゲットにバインドする必要があります。
これが私が直面した主なポイントです。必要なファイルを拡張ビューコントローラーにインポートするだけだと言ったので、誰かがその問題を解決する方法を提案できるかもしれません。AFNetworking
インポートされたファイルには、などのいくつかのライブラリRestKit
と、メイン プロジェクトの他のネストされたクラスが含まれています。拡張機能からバックエンド サーバーにデータを渡すいくつかのメソッドを呼び出すには、このクラスが必要です。したがって、1 つのファイルですが、多くの問題があります。