私はiOS用のサードパーティのUIKitの代替品に取り組んでいます。GitHubの非常に役立つプロジェクトを使用して、フレームワークとして構築しています。(私のものではありませんが、興味があればここにあります。
私が書いている他のプロジェクトで自分のライブラリを使おうとしています。私が言ったように、これは基本的にUIKitの多くのドロップイン置換であるため、ボタン、アクションシート、アラートビューなどを使用したい場所ではなく、プロジェクトの*.pchファイルにフレームワークをインポートすることにしました。 。
#import
ヘッダーファイルにディレクティブがなく、タイプのプロパティを宣言すると、MBMButton
コンパイラは「不明なタイプ名'MBMButton';「UIButton」を意味しますか?」というエラーを表示します。奇妙なことに、コードは引き続き実行されます(これはエラーであり、警告ではありませんが)。このコンパイラの苦情を追加@class MBMButton
または解決します。#import <MBMUIKit/MBMUIKit.h>
実装ファイル(またはそのヘッダー)にディレクティブがなく#import
、に存在するが存在しないメソッドを呼び出すと、「UIButtonの表示された@interfaceがセレクターを宣言していません...」というコンパイラエラーが発生します。 。以前と同様に、コードは有効な呼び出しであるため、実際に実行されます。MBMUIButton
UIButton
今、私はいくつかの掘り下げを行い、プロジェクトの設定を変更しました。GCC_PREFIX_HEADERに値がない場合は、ファイル名を追加しました。Appleによるクイックヘルプの説明に注意して、「ProjectName-Prefix.pch」と「./ProjectName-Prefix.pch」の両方を試しました。どちらも問題を解決していないようでした。最終的に、ターゲットレベルの設定がプロジェクトレベルの設定を上書きし、ターゲットレベルの設定ですでに「ProjectName/ProjectName-Prefix.pch」が指定されていることがわかりました。それが行き止まりでした。(ただし、相対パス設定が何であるかを正確に知ることはできます!)
*.pchファイルを使用しなくても大丈夫です。これは単なる便宜であり、適切なディレクティブを確実に使用でき@class
ます#import
。私を悩ませているのは、問題を理解していないことです。* .pchファイルをどのように使用する必要がありますか?