私は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属性がnullです。 どこか間違っている必要がありますので、どうすれば修正できますか?
Objective Sharpieを試しましたか? https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/ – iamIcarus
「NSString」ではなく「string」を使用してバインドを試してください。それがうまくいかない場合は、何らかの理由でネイティブライブラリが実行可能ファイルにリンクされていない可能性があります(ビルドログにはこれが表示されます)。 –
NSStringの代わりにstringを使用しようとしましたが、それは正しくありません。今では私のネイティブライブラリで何かが間違っていると思うかもしれません。私はそれをチェックします。ありがとうご提案ありがとうございます。 –