类别不承认Ivars

时间:2012-01-29 03:26:00

标签: iphone objective-c ios categories objective-c-category

我的应用程序中有一个很大的View Controller,我希望通过将一些功能分成几类来清理它。我读到了如何实现一个类别并且有:

#import "StatsVC.h"

@interface StatsVC (TableViewDelegate)

@end

作为我的.h(该类别称为StatsVC + TableViewDelegate)。 我的实施就是这样开始的:

@implementation StatsVC (TableViewDelegate)

在类别中多次,我访问的变量是原始类的iVars。我已经阅读并且据说这是允许的,但是对于类别中的iVar的每次使用,我都会收到以下错误消息:

'Use of undeclared identifier 'iVar'

有人知道为什么会这样吗?

谢谢,

1 个答案:

答案 0 :(得分:5)

您绝对可以从类别中的方法访问实例变量。类别向类添加方法 - 在类接口中声明的方法与在该类的类别中声明的方法之间的运行时间没有实际区别。你可能需要显示更多代码才能得到一个好的答案。现在,我的两个猜测是:

  1. 您尝试从类方法而不是实例方法访问ivars,即以+而不是-开头的方式。

  2. 你宣布伊娃的方式有问题。