我是 iOS 编程的新手,需要 [快速] 将 Cordova 应用程序移植到 iOS。我在尝试复制此处找到的项目时遇到了以下错误。
可能是什么原因以及如何在不深入代码的情况下解决它?(如果可能的话)
AppDelegate getCommandInstance:]: unrecognized selector sent to instance <instance>
ebKit discarded an uncaught exception in the
webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate:
<NSInvalidArgumentException> -[AppDelegate getCommandInstance:]: unrecognized selector
sent to instance <instance>
谢谢。
[编辑]
AppDelegate.h 有以下几行
@property (nonatomic, retain) IBOutlet UIWindow* window;
@property (nonatomic, retain) IBOutlet CDVViewController* viewController;
AppDelegate.m 有
CGRect screenBounds = [[UIScreen mainScreen] bounds];
self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
self.window.autoresizesSubviews = YES;
和
[self.window addSubview:self.viewController.view];
[self.window makeKeyAndVisible];
[编辑]
这是代码中唯一引用 getCommandInstance 的部分,正如上面可以看到的错误中提到的。这个片段可以在 SQLitePlugin.m 中找到
-(CDVPlugin*) initWithWebView:(UIWebView*)theWebView
{
self = (SQLitePlugin*)[super initWithWebView:theWebView];
if (self) {
openDBs = [NSMutableDictionary dictionaryWithCapacity:0];
[openDBs retain];
CDVFile* pgFile = [[self appDelegate] getCommandInstance: @"org.apache.cordova.file"];
NSString *docs = [pgFile appDocsPath];
[self setAppDocsPath:docs];
}
return self;
}