我是 Monotouch 的新手。最近,我正在开发一个 Monotouch 绑定项目,该项目绑定了一个自定义 iOS 框架,该框架是我自己开发的一个 .NET 框架库。我按照 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 首选项 = GRG.SharedG.Preferences; - 错误:“无法从源类型转换为目标类型。”
Console.WriteLine(GRG.sharedG.Preferences.DebugEnabled); - 错误:“无法从源类型转换为目标类型。”
谁能帮帮我吗?