Iphone 何时使用@property?
可能重复:Iphone 何时使用@property?,iphone,objective-c,ipad,properties,Iphone,Objective C,Ipad,Properties,可能重复: 我已经用objective-c编程一年多了,我一直觉得使用@property和@Synthesis是一种惯例。但他们真正的目的是什么?他们是否只在班级之间交流?例如,如果我只在声明NSMutableDictionary的类的范围内使用它,那么省略就可以了 另一个问题: 如果我设置NSMutableDictionary的属性,它会被保留,对吗?所以,在我的类中,我不必调用alloc()和init(),是吗? 使用属性的规则是什么 但他们真正的目的是什么 对IVAR的访问控制以及表示
我已经用objective-c编程一年多了,我一直觉得使用@property和@Synthesis是一种惯例。但他们真正的目的是什么?他们是否只在班级之间交流?例如,如果我只在声明NSMutableDictionary的类的范围内使用它,那么省略就可以了 另一个问题: 如果我设置NSMutableDictionary的属性,它会被保留,对吗?所以,在我的类中,我不必调用alloc()和init(),是吗? 使用属性的规则是什么 但他们真正的目的是什么 对IVAR的访问控制以及表示和底层数据之间的抽象 他们是否只在班级之间交流 不,当您希望控制对IVAR的访问而不是直接访问IVAR时,或者当您将来可以更改基础数据结构但希望保留当前表示时,它们才适用 例如,如果我只在声明NSMutableDictionary的类的范围内使用它,那么省略就可以了 视情况而定。您想控制对iVar的访问吗?您的代码是否可能更改,以便获取字典而不是直接iVar。通常,答案是肯定的 如果我设置NSMutableDictionary的属性,它会被保留,对吗 取决于您如何声明属性 所以,在我的类中,我不必调用alloc()和init(),是吗 你的措词太草率了。我想你是在问你是否还需要构造一个属性的实例。是的,您需要以某种方式构造属性的实例。有很多方法可以做到这一点 注意:谈论方法的惯例是使用它们的签名。您将使用-alloc代替alloc() 使用属性的规则是什么
这需要阅读for.和其他语言一样,当我们想要使变量成为全局变量或公共变量时,我们使用公共访问修饰符。在目标c中,当我们想要访问另一个类中的另一个类变量时,我们使用@property并@synthesis它们。基本上,@synthesis是编译器为该变量创建setter和getter方法的方法。您可以手动创建它们,但不能使用@synthesis。 通过创建该类的对象,您可以访问其他类中的属性变量。
通过使用retain,您可以清除发生在内存中的内容,并且在容器类未进行dispose或Release之前不存在该内容 房产只会让你的生活更轻松 现在,在内存管理、代码风格和节省时间方面尽可能多地使用属性
@property
s做什么?它们可以创建getter和setter方法(取决于给定的参数) 通常在头文件中声明实例变量(如在c++中)。
现在,您只需简单地将其放在一边,而不是声明您想要作为实例变量的属性 属性可以获取多个参数。
对于普通的objective-c对象,您需要一个指针(*),您可以编写它。
@属性(非原子、保留等)
当您合成时,它会创建一个getter和setter。setter会自动执行一些操作,例如释放旧对象、保存变量并保留新对象。
因此,您不必手动执行此操作(通常情况下应该是这样)。这很重要。
您还可以为它提供参数(readonly、readwrite),以决定是否设置setter。
您甚至可以在头文件readonly中声明一个
@property
,并使用扩展名(一个没有名称的类别)覆盖实现文件中的属性
要深入了解这一点,请阅读非常有效的苹果开发人员手册。
希望这有点帮助
舒尔是冰山一角,但它大部分是你需要的。当你记得一个<代码> @属性< /Cord>声明只是声明“代码> -SETFO:和