私はObjective Cを持つXcodeプロジェクトに取り組んでいます。これはオプションのフレームワークを持っています。つまり、プロジェクトにリンクされている/存在する場合にのみ、特定のフレームワークからコードが実行されます。私が使用している現在のフレームワークはPassKitです。どうすればこれを達成できますか?フレームワークがリンクされているかどうかを確認できるマクロがありますか?このような何かが、それは動作しません:Xcodeでフレームワークが追加/リンクされている場合のみヘッダーファイルを含めるには?
また、私は私のターゲットに自動的に NO にリンクフレームワークを設定している#if __has_include("PassKit.h") && __has_include(<PassKit.h>)
#import <PassKit/PassKit.h>
#endif
- (void)viewDidAppear:(BOOL)animated {
if ([PKPassLibrary class]) {
UIAlertController *alert = [UIAlertController
alertControllerWithTitle:@"PassKit Test"
message:@"PassKit is linked."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* okButton = [UIAlertAction
actionWithTitle:@"Ok"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {
NSLog(@"Ok pressed...");
}];
[alert addAction:okButton];
[self presentViewController:alert animated:YES completion:nil];
}}
。あなたの答えと助けてくれてありがとう。
正常にインクルードしますが、使用する前にその機能が利用可能かどうかを確認してください。可能であれば、次の複製:http://stackoverflow.com/questions/33038137/xcode-and-optional-frameworks – Sealos
私はこれをどのように使用することができないのですか?この関数の 'weak_import'ですか? MyWeakLinkedFunction()__attribute __((weak_import)); 'フレームワーク名のパラメータ?これをPassKitとどのように接続できますか? – MattCodes
実行時にフレームワークが存在するかどうかわかるものが必要です。フレームワークが存在する場合は、コードが実行されます。 – MattCodes