ios 项目中的全局、局部、成员、属性变量
2016-03-14 17:14
323 查看
全局变量
局部变量
成员变量
属性变量
-如果不为它赋值默认为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的全局变量,命名一定要很独特,才能区分与其他源文件中的全局变量,如果出现跟其他源文件同名的全局变量,则会报错误
例如
@interface MyObject : NSObject {
int counter;//成员变量
}
@end
一些建议:
1.如果只是单纯的private变量,最好声明在implementation里.
2.如果是类的public属性,就用property写在.h文件里
3.如果自己内部需要setter和getter来实现一些东西,就在.m文件的类目里用property来声明
一个链接
[ 维基百科 ]
局部变量
成员变量
属性变量
全局变量
-定义:在@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来声明
一个链接
[ 维基百科 ]
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Lua中的全局变量、非全局变量总结
- js DOM 元素ID就是全局变量
- c语言全局变量和局部变量问题及解决汇总
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- 深入uCOS中全局变量的使用详解
- Ruby 中$开头的全局变量、内部变量、隐藏变量介绍
- sqlserver 局部变量的使用
- 全局变量与局部变量在内存中的区别详细解析
- 关于全局变量和局部变量的那些事
- iOS 日记app的制作过程(Objective-C)
- iPhone锁屏却锁不住个人信息,iOS安全性真的很高吗?