我正在尝试制作一个自定义的Cordova插件,我想在Objective-C中创建一个调用javascript函数alert('text')的方法;
这就是我通常的做法,而且运作良好。
- (void)myMethod:(CDVInvokedUrlCommand*)command
{
[self.commandDelegate evalJs:@"alert('text');"];
}
问题是我需要使用类方法做同样的事情。如果我将 - 更改为+,则会收到错误消息。
+ (void)myMethod:(CDVInvokedUrlCommand*)command
{
[self.commandDelegate evalJs:@"alert('text');"];
}
答案 0 :(得分:1)
想一想;一个实例就像汽车一样,这个类就像制造汽车的工厂一样。
每辆车都有不同的驾驶员(代表),但工厂无法访问每辆车的驾驶员,除非他们专门设计了一种获取通道的方式(例如,通过On-Star)。
所以,这是你的问题。您正尝试从实例的范围之外访问实例状态。在类方法中,self
引用类,而不是任何特定实例。
解决方案可以是其中之一。你可以使用 singleton ;例如,在程序中全局使用的该类的单个实例。