类别不承认Ivars

Kyl*_*uth 4 iphone objective-c categories ios objective-c-category

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

#import "StatsVC.h"

@interface StatsVC (TableViewDelegate)

@end
Run Code Online (Sandbox Code Playgroud)

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

@implementation StatsVC (TableViewDelegate)
Run Code Online (Sandbox Code Playgroud)

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

'Use of undeclared identifier 'iVar'

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

谢谢,

Cal*_*leb 5

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

  1. 您试图从类方法而不是实例方法访问ivars,即以a +而不是a 开头-.

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