如何在Objective C中的类方法上使用self

大卫·马库斯

我正在尝试制作一个自定义的 Cordova 插件,我想在 Objective-C 中创建一个方法来调用 javascript 函数 alert('text');

这就是我通常的做法,而且效果很好。

- (void)myMethod:(CDVInvokedUrlCommand*)command
{
    [self.commandDelegate evalJs:@"alert('text');"];
}

问题是我需要使用类方法做同样的事情。如果我将 - 更改为 +,则会收到一条错误消息。

+ (void)myMethod:(CDVInvokedUrlCommand*)command
{
    [self.commandDelegate evalJs:@"alert('text');"];
}
笨蛋

这样想;实例就像一辆汽车,而类就像制造汽车的工厂。

每辆车都有不同的司机(代表),但工厂无法访问每辆车的司机,除非他们专门设计了一种访问方式(例如,通过 On-Star)。


所以,这就是你的问题。您尝试访问实例状态从范围之外的实例类方法中self指的是类,而不是任何特定的实例。

解决方案可以是几个之一。你可以使用单例例如,在您的程序中全局使用的该类的单个实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章