mk1*_*k12 5 java constants objective-c static-members
是什么区别:
@interface SomeClass : NSObject {
NSObject *something;
}
Run Code Online (Sandbox Code Playgroud)
和
@interface SomeClass : NSObject {
}
NSObject *something;
Run Code Online (Sandbox Code Playgroud)
?另外,Java的final和Objective C(C)的const有什么区别?在下列情况下我应该在哪里声明静态类成员:1.只有类需要它时**2.**哪里是其他类可以读取的属性?我已经知道#define,但这对于对象并不好,因为它每次都会创建新对象.谢谢!
前者是一个实例变量,something为SomeClass的每个实例创建一个.它与C类似
typedef struct {
NSObject *something;
} SomeClass;
Run Code Online (Sandbox Code Playgroud)
后者声明了一个与SomeClass没有真正关联的全局变量.在C中,它相当于
NSObject *something;
Run Code Online (Sandbox Code Playgroud)
在全球范围内定义.Objective-C实际上没有类变量,因此使用全局变量(有时使用;有编译单元范围和静态存储类的变量应该使用).
定义"类"变量最干净的方法是在实现文件中定义静态变量.这样,只有类方法可以访问它,并且您避免污染全局命名空间.如果您希望公开,请定义访问者.
正确销毁类变量可能很棘手.将回收内存,并在应用程序退出时自动关闭打开的文件,但其他资源可能无法很好地处理.
| 归档时间: |
|
| 查看次数: |
3310 次 |
| 最近记录: |