Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS编译错误:';没有可见的@interface;CDVCommandDelegateImpl';声明选择器';执行:';_Ios_Objective C_Iphone_Cordova - Fatal编程技术网

iOS编译错误:';没有可见的@interface;CDVCommandDelegateImpl';声明选择器';执行:';

iOS编译错误:';没有可见的@interface;CDVCommandDelegateImpl';声明选择器';执行:';,ios,objective-c,iphone,cordova,Ios,Objective C,Iphone,Cordova,升级到最新的Cordova版本(3.6.3)后,我在运行Cordova build ios命令时出现此错误 错误: /Volumes/local.uhmuhm.net/projectxxx/htdocs/phonegap/src/Projectxxx/platforms/ios/Projectxxx/Classes/MainViewController.m:154:19: error: no visible @interface for 'CDVCommandDelegateImpl' decl

升级到最新的Cordova版本(3.6.3)后,我在运行
Cordova build ios
命令时出现此错误

错误:

/Volumes/local.uhmuhm.net/projectxxx/htdocs/phonegap/src/Projectxxx/platforms/ios/Projectxxx/Classes/MainViewController.m:154:19: error: no visible @interface for 'CDVCommandDelegateImpl' declares the selector 'execute:' return [super execute:command];
其他信息:

/Volumes/local.uhmuhm.net/projectxxx/htdocs/phonegap/src/Projectxxx/platforms/ios/Projectxxx/Classes/MainViewController.m:154:19: error: no visible @interface for 'CDVCommandDelegateImpl' declares the selector 'execute:' return [super execute:command];
  • 安装平台:android 3.6.3,ios 3.6.3

  • 我使用的是最新的xcode版本(6.0.1)

  • 将Cordova升级到3.6.3后,一切都开始了(在此之前我运行的是3.4.1)

有什么办法解决这个问题吗?


我今天也有同样的问题。我发现CordovaLib/Classes/CDVCommandDelegateImpl.m文件没有以下内容:

- (BOOL)execute:(CDVInvokedUrlCommand*)command
{
    return [_commandQueue execute:command];
}
因为它在最新的Cordova 3.5.0的同一个文件中。 因此,我在CDVCommandDelegateImpl.h文件中添加了这个片段和正确的声明:

- (BOOL)execute:(CDVInvokedUrlCommand*)command;

现在我的应用程序正在运行!不确定这是否是一个好的解决方案,但如果它有效,那么它就足够了:)

使用新的cordova版本运行
cordova create
以创建新项目,然后在“旧”项目中的文件上复制
AppDelegate
MainViewController
。在那之后,错误就消失了。

我已经修复了相同的问题

cordova platform remove ios
cordova platform add ios

根据纳扎尔所说,创建新应用程序和比较现有
platforms/ios/Classes
文件夹的唯一区别是从
MainViewController.m
中删除
execute
方法


这为我清除了构建错误。

下载到Cordova 3.5,一切都恢复正常。太棒了!尝试一下。这将删除该目录中的所有源文件,让您知道应该将所有源文件放入www并合并根目录中不会被删除的文件夹。这是不必要的,也是破坏性的。SKFox下面的解决方案应该被接受,因为这是让它工作起来所需要的全部,而且你不会丢失作为现有iOS项目一部分的目标C代码。我一直认为“删除并添加平台”是解决Cordova问题的方法。这是一个痛苦的开始,因为我们必须恢复所有的图标等等
cordova platform update ios
显然已损坏,或者不够智能。谢谢!我真的没有勇气删除/重新创建我的ios平台!执行上面的删除/添加步骤删除了我向Git承诺的一些内容,因此,采用这种方式是解决此问题的更好选择。谢谢你发布这篇文章。这对我也很有用,尽管我不喜欢修改这些文件,因为它们不是我项目的一部分。任何人都有任何简洁的解决方案来将这些修改过的文件包含在版本控制中,同时也允许cordova做自己的事情?这解决了错误,但现在我收到了大量“Apple Mach-O Linker”错误。Cordova平台更新根本不起作用。