我正在尝试链接AFNetworking
内部使用的本机 iOS 框架,我最初将其构建为原型,以便将我公司的一些 ObjC IP 转移到将来也可以与 Xamarin 链接。
我首先创建了一个简单的类,它使用 AFNetworking 将小猫加载到 UIImageView
头文件:
#import <UIKit/UIKit.h>
@interface FWSImageRepo : NSObject
+(UIImageView *)imageViewFromURLString:(NSString *)urlString;
@end
执行
@implementation FWSImageRepo
+(UIImageView *)imageViewFromURLString:(NSString *)urlString{
UIImageView *imageView = [[UIImageView alloc] init];
NSURL *imageUrl= [NSURL URLWithString:@"http://www.pets4homes.co.uk/images/articles/1334/large/6-health-issues-to-watch-for-in-young-kittens-52f62cff5cabb.jpg"];
if(imageUrl != nil) {
[imageView setImageWithURL:imageUrl];
}
return imageView;
}
@end
我创建了一个框架编译器目标,并将该框架复制到 Xamarin iOS 项目中。我使用了 Objective Sharpie 来生成下面的绑定
// @interface FWSImageRepo : NSObject
[BaseType(typeof(NSObject))]
interface FWSImageRepo
{
// +(UIImageView *)imageViewFromURLString:(NSString *)urlString;
[Static]
[Export("imageViewFromURLString:")]
UIImageView ImageViewFromURLString(string urlString);
}
所有这些都按照 a 中binding project
的说明进行链接,框架作为本机引用链接,绑定项目由单页 Xamarin iOS 应用程序引用。
现在,仅对该类var fwrepo = new FWSImageRepo();
进行初始化就表明该框架根本不适合该项目。即使我没有链接绑定项目中的框架,错误也不会改变
Could not create an native instance of the type 'FWSImageRepo': the native class hasn't been loaded. It is possible to ignore this condition by setting ObjCRuntime.Class.ThrowOnInitFailure to false.
有什么理由检查发生了什么?我已经尝试了一切,并在网上用尽了我的搜索。就我所搜索的而言,在任何地方都没有这个要求的例子,而且几乎没有任何方向。我已经尝试过其他面临相同问题的解决方案。我如何查找我出错的地方?
这是我创建的项目的链接https://drive.google.com/open?id=0B2f9RlRxZKoZcElIRkpLZnF6WVU