无法从 CDVPlugin 类目标 c 和 phonegap 调用 MainViewController 的静态方法

Posted

技术标签:

【中文标题】无法从 CDVPlugin 类目标 c 和 phonegap 调用 MainViewController 的静态方法【英文标题】:cannot call static method from MainViewController from CDVPlugin class objective c and phonegap 【发布时间】:2013-12-30 14:16:15 【问题描述】:

我需要从MainViewController调用静态方法添加进度条,这个进度条显示从CDVPlugin类的连接对象下载进度。

我在 MainViewController 中创建静态方法,例如:

+ (void)CommonMethod

并在 MainViewController.h 中定义它:

+ (void)CommonMethod;

我想在继承自 CDVPlugin 的类中调用它,它是一个带有 javascript 端的桥梁。

我通过两种方式调用它: 1-

MainViewController *mainView = [[MainViewController alloc] init];
[mainView CommonMathod];

或 2-

[MainViewController CommonMathod];

但是,这两个是这个警告的结果,它完全停止了我的所有应用程序。

未找到实例方法“-CommonMethod”(返回类型默认为“id”)

我能做什么?

提前谢谢你,

【问题讨论】:

你确定,你需要静态方法,可能是简单的函数可以工作? 我需要从另一个类调用它,另一个类继承自CDVPlugin,所以我不能从这个类添加进度条,我必须调用主类中的方法来添加这个进度条,如果他们是添加此进度条的蚂蚁解决方案,我将不胜感激。 【参考方案1】:

试试这个..

[[MainViewController class] CommonMethod];

很有帮助

【讨论】:

非常感谢,它有效:),如果我也可以问,如果这种方式是最好的添加进度条,通过让 MainViewController 这样做?,现在我看到进度条应该是也是静态的。 我真的无法回答。我不知道 MainViewController 是/应该做什么。或者你的进度条应该做什么。 另一个类负责从服务器下载文件,所以需要添加进度条来显示这个下载进度,但是它继承自CDVPlugin(它是一个带有javascript端的接口),而MainViewController是项目的主类并具有其 .xib 文件,因此我认为唯一的解决方案是调用 MainViewController 在屏幕上添加此进度条,如果您有任何想法,我将不胜感激。在所有情况下都谢谢你。 我对 Phongap 不熟悉,所以我不知道它是如何工作的。通常一个 ios 应用程序有很多 ViewControllers,所以进度条通常被添加到需要它的视图控制器中。但是,如果此解决方案只有一个(MainViewController),您可能应该将其添加到其中。如果您有 .xib,只需将进度条添加到其中并将其连接到您的视图控制器并在需要时隐藏/显示它。 谢谢,我跟着成功了,【参考方案2】:

需要

#improt "MainViewController.h"

并调用

[MainViewController CommonMathod];

【讨论】:

以上是关于无法从 CDVPlugin 类目标 c 和 phonegap 调用 MainViewController 的静态方法的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap 3.4.0 和相机插件 (iOS) 的问题:CDVPlugin 类 CDVCamera (pluginName: camera) 不存在

如何在 Cordova 中从 CDVPlugin 显示 ViewController?

您将如何在目标 c 中动态创建类实例

PushPlugin 未找到,或者不是 CDVPlugin

无法在目标 c 中使用类(swift)

无法在目标 c 中使用类(swift)