Objective-C实例变量和属性之间的差异

时间:2012-01-01 00:22:28

标签: objective-c

当你这样做时

myClass.m
@interface myClass {
   NSMutableArray   *myArray;

}
@end
@implement
.....
.....

尝试声明这样的变量时的目的是什么。 声明

时的外观如何
myClass.h
@import "UIKit/UIKit.h"

@interface myClass () <TableViewDataSource>
NSMutableArray *myArray

@end

由于

1 个答案:

答案 0 :(得分:-2)

第一个例子是实例变量的声明。

第二种是使用财产。

两者之间存在差异。例如,在使用实例变量时,您必须编写自己的getter / setter。有财产,你没有。

可以在此处找到更多差异和详细信息:Declared Properties Documentation


更新了原始问题的给定更改。

假设您正在讨论myArray变量,在第一个示例中,您已将myArray声明为类的实例变量。要访问它,您需要创建该类的实例。

在第二个示例中,您已将其声明为全局变量,默认情况下具有文件范围。也就是说,您可以在任何包含myclass.h头文件的文件中使用它,而无需创建该类的实例。但是,您必须小心将其包含在多个文件中,否则最终可能会出现多个定义错误。