回答
不能属性类别添加。我认为这与处理内存的方式有关。将实例变量添加到已存在的对象将改变对象的大小。
多数民众赞成在不正确的 - 你当然可以添加计算属性和通过leverging运行时甚至存储了属性 –
这是完全正确的,因为他询问属性是否可以添加到一个类别中。他并没有问,属性是否可以(明确地或隐含地)在一个类别中合成。 –
那么你可以添加setter任何getter,但你不能分配内存的权利?除了在方法中... –
你可以很容易地做到这一点 - 如果苹果这样做,我不知道。他们经常暴露属性在类别虽然..
无论如何,如果它对你的设计有意义,继续!请记住,虽然您可以添加属性,但不能将变量添加到现有类。
所以无论是已经计算性能,是一种方便的包装“围绕现有功能或使用相关的存储
你可以用相关的对象,这增加变数。虽然这不被推荐。这个链接有你需要知道的一切。
http://nshipster.com/associated-objects/
科出来的博客:
关联的对象应被视为最后手段的方法,而不是在寻找一个问题的解决方案(真的,类别自己真的不该开始时不在工具链的顶部)。
首先我想说Peter Segerblom的回答不正确。但是,Daji-Djan的评论可能是误导性的。
从一开始:
声明的属性是完全的两个声明(一个 - 为只读属性)的方法。期。
- 这意味着它是一个声明。
- 这意味着它指的是方法。
因此,您可以在类别中添加声明属性。
但是,如果属性显式或隐式(苹果:自动)合成,它将合成一个伊娃,如果没有。 这个是不可能的,因为它会改变实例对象的内存占用和一个时间点,实例对象已经被分配。
所以你必须做以下的事情之一:
- 已经有伊娃。 (什么使它有点没有意义)
- 没有综合声明的属性。
然而,这可以是用于计算性质是有用的,对于属性,其值被存储在另一个对象,属性,其值被存储为关联的对象,用于...
谢谢,确实比我的评论好听多了 –
- 1. Objective-C类别:我可以为不在我的类别中的方法添加属性吗?
- 2. Objective C中各个类的属性C
- 3. 在Objective c中添加属性运行时
- 4. 如何在Objective-C中自动添加属性?
- 5. 如何在Objective-C中将属性添加到NSObject?
- 6. 向PropertyDescriptor添加类别属性
- 7. objective-c中的属性属性之间的区别
- 8. Objective-c类别
- 9. Objective-C属性
- 10. 如何在类别中添加私人(在标题中)属性?
- 11. 类别在C++/CLI中的属性
- 12. 我可以将ivar(或属性)添加到objective-c中的现有类中吗?
- 13. Objective-C中类别的子类别
- 14. 添加类属性在Python
- 15. 使用类别添加Objective-C中的块的方法
- 16. Objective-C类别属性获得者的命名模式?
- 17. 如何确定Objective-C属性的类别?
- 18. 动态添加属性到c#类
- 19. 在magento 2中添加自定义图像属性类别
- 20. 如何在目标C中使用类别添加复制属性?
- 21. Objective-C属性在头文件中没有被识别?
- 22. Objective-C KVC更改属性的类型
- 23. 在C#中使用Codedom添加属性
- 24. 在c#代码中添加mouseover属性
- 25. 将C++对象添加到Objective-C类
- 26. 在派生类中添加属性
- 27. 在Objective-C中只写属性
- 28. 在Objective-C中使用GCC __unused属性
- 29. 在Objective-C中使用属性?
- 30. 如何在Objective-C中使用属性?
[目的-C的可能重复:属性/实例变量在类别](http://stackoverflow.com/questions/8733104/objective-c-property-instance-variable-in-category) – dan