我对MonoTouch的新手。 最近,我的工作结合自定义的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
{}
在那之后,我创建了单一个测试应用程序测试新创建的库并访问我创造的价值。 但是,我得到了一个错误。
Console.WriteLine(GRG.sharedG.DriverVersion); - 这工作得很好。 它返回正确的值。
GRGPreferences PREF = GRG.SharedG.Preferences; - 错误:“不能从源类型转换为目标类型。”
Console.WriteLine(GRG.sharedG.Preferences.DebugEnabled); - 错误:“不能从源类型转换为目标类型。”
谁能帮帮我吗?