モノタッチ初心者です。最近、自分で開発したカスタム iOS フレームワークを .NET フレームワーク ライブラリにバインドする Monotouch バインド プロジェクトに取り組んでいます。Xamarin の指示に従っていますが、現在解決できない問題が発生しています。これは私のコードです。
**HEADER FILE IN OBJECTIVE C**
*GRG.h*
@interface GRG: NSObject {}
// Shared instance
+ (GRG*) sharedG;
// Preference class
@property (nonatomic, readonly) GRGPreferences *preferences;
// Driver version
@property (readonly,copy) NSString* driverVersion;
// More parameters...
@end
*GRGPreferences.h*
@interface GRGPreferences : NSObject <GRGPreferencesProtocol>{}
// Enable DEBUG
@property BOOL debugEnabled;
// More parameters...
@end
*GRGPreferencesProtocol.h*
@protocol GRGPreferencesProtocol <NSObject>
// More parameters...
@end
ヘッダーファイルをこれに変換します
**API DEFINITION**
[BaseType (typeof (NSObject))]
interface GRG
{
[Static][Export("sharedG")]
GRG SharedG{ get; }
[Export("preferences")]
GRGPreferences Preferences{ get;}
[Export("driverVersion", ArgumentSemantic.Copy)]
string DriverVersion {get;}
}
[BaseType (typeof (GRGPreferencesProtocol))]
public interface GRGPreferences
{
[Export("debugEnabled")]
bool DebugEnabled{ get; set;}
}
[BaseType(typeof (NSObject))]
[Model]
public interface GRGPreferencesProtocol
{}
その後、mono でテスト アプリを作成して、新しく作成したライブラリをテストし、作成した値にアクセスできるようにしました。ただし、エラーが発生しました。
Console.WriteLine(GRG.sharedG.DriverVersion); -これはうまくいきます。適切な値を返します。
GRGPreferences pref = GRG.SharedG.Preferences; - エラー : 「ソース タイプから宛先タイプにキャストできません。」
Console.WriteLine(GRG.sharedG.Preferences.DebugEnabled); - エラー : 「ソース タイプから宛先タイプにキャストできません。」
誰でも私を助けてもらえますか?