Objective-C:类别中的实例变量

标签 objective-c object asihttprequest nsindexpath identify

我只是问是否可以通过类别添加实例变量。我的特殊问题是,我需要将 NSIndexPath 属性添加到 ASIHTTPRequest 对象,但原则上我不想子类化 ASIHTTPRequest。

我有其他选择吗?

感谢您的回答, 基督徒

最佳答案

类别不能声明额外的实例变量,但从 OS X 10.6 和 iOS 3.1 开始,您可以使用 associative references 解决这个问题.

您可以使用关联引用来模拟将对象实例变量添加到现有类中。使用关联引用,您可以在不修改类声明的情况下向对象添加存储。这是通过 objc_setAssociatedObjectobjc_getAssociatedObject 完成的。如果将这些调用包装在属性的自定义 getter 和 setter 中,就可以伪造一个 ivar。

看看这个post通过 Ole Begemann .

关于Objective-C:类别中的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162589/

相关文章:

iphone - 如何处理 MKMapView 上数百个 map 注释导致的延迟?

ios - 通过textview显示文本时出现错误

javascript - 无法从 Vue.js 中的监视属性访问旧值

iphone - xcode 4.x 中的 zlib 框架在哪里

objective-c - 调用方法时ASIHTTPREQUEST框架编译错误/链接错误

objective-c - malloc 48 bytes Memory leak in allocateing the memory 没有得到任何解决方案

objective-c - 除了 NSObject 上的类别之外,在两个类之间共享一组方法的更好方法是什么?

c++ - 使用流初始化 C++ 对象

javascript - 计算对象数组上的所有值 - javascript

objective-c - 来自 ASIHttpRequest 的空白响应