iPhone:我可以将类方法用于 UIBarButtonItem 的操作选择器吗?
Posted
技术标签:
【中文标题】iPhone:我可以将类方法用于 UIBarButtonItem 的操作选择器吗?【英文标题】:iPhone: Can I use class method for action selector of UIBarButtonItem? 【发布时间】:2012-06-07 10:50:22 【问题描述】:我想使用类方法来选择 UIBarButtonItem 的动作。
代码是:
[[UIBarButtonItem alloc]
initWithTitle:@"title"
style:UIBarButtonItemStylePlain
target: self
action:@selector(method)]
当我使用实例方法进行操作时,它可以工作。
但是当我使用类方法进行操作时,当我点击按钮时会发生错误。
错误信息是:unrecognized selector sent to instance
。
我不能为此使用类方法吗? 如何设置使用目标而不是自我?
【问题讨论】:
使用 [self 类] 而不是 self。您混淆了类方法和实例方法。 不行,navigationbarbutton item 是导航栏的即时对象,只能关联即时方法。 【参考方案1】:请改成下面的代码:这里的target
应该是self
而不是[self class]
[[UIBarButtonItem alloc] initWithTitle:@"title"
style:UIBarButtonItemStylePlain
target:self
action:@selector(method)];
【讨论】:
不客气,如果有帮助,请不要忘记投票和/或接受答案:)【参考方案2】:是的,你可以通过
[[UIBarButtonItem alloc] initWithTitle:@"title" style:UIBarButtonItemStylePlain target: self
action:@selector(method)];
- (void)method
// here call class method
[YourClassName methodName];
【讨论】:
【参考方案3】:是的,您必须使用实例方法。只需从您的方法中调用您的类方法。
【讨论】:
以上是关于iPhone:我可以将类方法用于 UIBarButtonItem 的操作选择器吗?的主要内容,如果未能解决你的问题,请参考以下文章