我已阅读Xamarin的文档。如何将Objective-C静态库绑定到Xamarin.iOS?
这是我的测试类在Objective-C:
#import "XamarinBundleLib.h"
@implementation XamarinBundleLib
+(NSString *)testBinding{
return @"Hello Binding";
}
@end
这很容易,只有一个方法。
这是我的C#类:
namespace ResloveName
{
[BaseType (typeof (NSObject))]
public partial interface IXamarinBundleLib {
[Static,Export ("testBinding")]
NSString TestBinding {get;}
}
}
然后,这是我的AppDelegate代码:
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
string testStr = ResloveName.IXamarinBundleLib.TestBinding.ToString();
System.Console.WriteLine ("testStr="+testStr);
return true;
}
的TestBinding属性为空。 我一定在某个地方出了问题,所以我该如何解决?
你有没有尝试客观Sharpie? https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/ – iamIcarus
尝试使用'string'绑定而不是'NSString'。如果这不起作用,出于某种原因,本地库很可能没有链接到可执行文件中(构建日志会显示这一点)。 –
我尝试使用字符串而不是NSString,但这不正确。现在我想也许我的本地库有些问题,我会检查它。感谢您的建议。 –