ios 项目中的全局、局部、成员、属性变量

来源:互联网 发布:centos破解wifi密码 编辑:程序博客网 时间:2024/06/04 01:37

  • 全局变量
  • 局部变量
  • 成员变量
  • 属性变量

全局变量

-定义:在@implementation外定义的变量(在@implementation中定义也可,但是一般不这么干)。它是存于全局变量区,生命周期和程序相同.
-如果不为它赋值默认为0,它只在程序开机初始化一次(并不是该类实例化后才初始化的)

举例:
//规范的
static int hu=3;//全局变量
NSString*sttr1=@”S1ViewController”;//全局变量
@implementation S1ViewController
@end

//不规范的
@implementation S1ViewController
static int hu=3;//全局变量
NSString*sttr1=@”S1ViewController”;//全局变量
@end

-没有static 修饰的全局变量 ,在任何源文件中都可以用
-在其他文件如果要用该全局变量,需要在对应.h里在前面加extern即可使用了

例如:
@implementation S1ViewController
NSString*sttr1=@”S1ViewController”;//全局变量
@end
@interface S1ViewController
extern NSString*sttr1;即可使用了
@end

全局变量分为两种:
1)static 修饰的 也称私有全局变量,只在该源文件中可用
2)没有static 修饰的 ,在任何源文件中都可以用

在Objective-C 的语法中,声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 。
不过可以调用这个类的方法间接的修改这个静态变量的值。
在声明的类中结束后,再次使用还是之前的值。
static关键字声明的变量须放在implementation外面,或者方法中,如果不为它赋值默认为0,它只在程序开机初始化一次(并不是该类实例化后才初始化的)

注意:定义没有static的全局变量,命名一定要很独特,才能区分与其他源文件中的全局变量,如果出现跟其他源文件同名的全局变量,则会报错误

局部变量

-定义:和全局变量相对,只在局部存在,在类的方法里定义的变量(在-(void)aMethodWithinAClass{};中定义)。它只在方法内部存在

成员变量

-定义:在一个类的声明时定义,成员变量用于类内部,无需与外界接触的变量。

例如
@interface MyObject : NSObject {
int counter;//成员变量
}
@end

属性变量

根据成员变量的私有性,为了方便访问,所以就有了属性变量。属性变量的好处就是允许让其他对象访问到该变量。当然,你可以设置只读或者可写等,设置方法也可自定义。所以,属性变量是用于与其他对象交互的变量。

一些建议:
1.如果只是单纯的private变量,最好声明在implementation里.
2.如果是类的public属性,就用property写在.h文件里
3.如果自己内部需要setter和getter来实现一些东西,就在.m文件的类目里用property来声明

一个链接
[ 维基百科 ]

0 0
原创粉丝点击