iphone - 类别不识别 Ivars

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

我的应用程序中有一个相当大的 View Controller ,我想通过将一些功能分成几类来清理它。我阅读了有关如何实现类别的内容,并且:

#import "StatsVC.h"

@interface StatsVC (TableViewDelegate)

@end

作为我的.h(类别叫做StatsVC+TableViewDelegate)。 我的实现是这样开始的:

@implementation StatsVC (TableViewDelegate)

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

'使用未声明的标识符'iVar'

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

谢谢,

最佳答案

您绝对可以从类别中的方法访问实例变量。类别向类添加方法——在类接口(interface)中声明的方法与在该类的类别中声明的方法在运行时没有真正的区别。您可能需要显示更多代码才能获得好的答案。现在,我的前两个猜测是:

  1. 您正在尝试从类方法而不是实例方法(即以 + 开头的方法)访问 ivars而不是 - .

  2. 您声明 ivar 的方式有问题。

关于iphone - 类别不识别 Ivars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050672/

相关文章:

ios - 如何在 ios 的标签栏 Controller 中添加搜索栏?

python - 在哪里可以找到 "get-pip.py"下载链接?

iphone: View 隐藏后重新启动循环动画,然后重新出现?

ios - 在 xcode 上隐藏标签栏项目

iphone - Objective-C 中的循环 double

ios - 使用上传符号将 dSYM 上传到 Firebase

ios - 编程布局约束导致旋转无法调整基本 UIView 的大小

iphone - 如何在 iPhone 上激活/停用 "slide to unlock"?

ios - 在 UITableView 上添加 subview

ios - 重用 UIViewController