私はObjCライブラリをバインドしていて、それはすべてうまく機能しますが、1つの問題があります。ObjCライブラリは、別のヘッダーで定義されているいくつかの値を使用しています。
たとえば、次のようなヘッダー:
#define SOME_PROPERTY_1 TRUE
#define SOME_PROPERTY_2 TRUE
#define SOME_PROPERTY_3 FALSE
これらのプロパティに応じて、ライブラリはビューにいくつかの変更を加えます(したがって、これらの変更はライブラリにあり、C#コードにはありません)。
これらのプロパティを変更できるように、C#コードからこれらのプロパティにアクセスしたいと思います。ライブラリを変更したいのに動的に変更できない場合は、ライブラリを再構築する必要があります(目標は何ですか)。
これは可能ですか?
私はこれを検索しましたが、2つの提案された解決策を理解していませんでした:
- それらをバインディングではなくC#コードに配置する->これは解決策ではないと思います。その場合、ライブラリはこれらの変更を認識しないのでしょうか。(接続なし)
- それらを(静的)プロパティとしてバインドする
残念ながら、これを行う方法がわかりません。このヘッダーでは、これらはクラス/インターフェイスではなく、#DEFステートメントのみであるため、これらのプロパティをどの'クラス'で定義する必要があるかわかりません。
その後、ヘッダーは他のいくつかのObjCクラスに含まれます。そこで定義できるかどうかを確認しようとしましたが、これはインターフェイスであり、プロパティは受け入れられません。
つまり、基本的に、私がバインドしている「SomeController」クラスがあり、「SomeController.h」はインターフェイスとして定義されています
@interface SomeController : UIViewController
そして、「SomeController.m」には、
#import "Constants.h" //The file with only #DEF statements
@implementation SomeController
{
...
}
何か案は?
よろしく、マット