ios中的关键字总结
2013-12-11 19:28
148 查看
1.static
ios中static只能作用于.m文件中,在.h文件中会有警告
在函数体内 static 变量的作用范围为该函数体,不同于 auto 变量。
(1)该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;
(2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外的其它函数访问;
(3)在模块内的 static 函数只能被这一模块内的其它函数调用,而且这个函数的使用范围也被限制在声明
它的模块内;
(4)在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;
(5)在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。
2.import,class,include
@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还是需要使用#import。而#import比起#include的好处就是不会引起重复包含。
3.const
const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。可以减少bug的出现。4.atomic
和nonatomic
在设置@property属性时,默认为atomic,提供线程安全,因为在多线程环境下,加了atomic,setter函数会变成下面这样:@property
******p
-(void)setp:(***)newValue
{
[p lock];
if(property!=newValue){
[p release];
p=[newValue retain];//此处不能p=newValue(原因不详....求解??)
}
[p unlock];
}
因此也可以这样来理解,atomic是OC的一种线程保护,可以防止在set未完成时被另外一个线程读取,造成数据的错误.但是一般情况下还是用nonatomic,因为atomic是比较耗费资源.
5.assign
用于基础数据类型:NSInteger,CGFloatBOOL和C数据类型int,float,double,char
此标记说明设置器直接进行赋值,不设置就会是默认的.在使用垃圾收集的应用程序中,如果你要一个属性使用assign,且这个类符合NSCopying协议,此时就需要明确的指出这个标记,而不是简单的使用默认值,否则的话,你将得到一个警告.这再次向编译器说明你确实需要赋值,即使它是可拷贝的.
6.retain
此属性只能用于OC对象类型,不能用于Core Foundation对象,因为retain增加对象的引用计数,而基本数据类型或者Core Foundation对象都没有引用计数7.copy
此属性只对那些实行了NSCopying协议的对象类型有效,拷贝由copy方法执行相关文章推荐
- 黑马程序员-IOS学习笔记(十)概念和关键字的总结
- iOS中的strong,weak,assign,copy,retain等关键字的总结
- 关于iOS中的strong,weak,assign,copy,retain等关键字的总结
- iOS 声明属性关键字的总结
- iOS的copy,strong,weak,assign关键字的使用,网罗下来大概总结一下
- 关于iOS中的strong,weak,assign,copy,retain等关键字的总结
- 苹果IOS开发者账号总结
- iOS开发问题总结
- 对于 iOS 开发基于经验的一些总结与规划
- iOS-block的总结
- iOS KVO(键-值观察) 的使用总结
- IOS 消息推送原理及实现总结(续)---- Provider(JAVA实现)
- iOS每日总结博客版:iOS开发历程中了解和学习的文章
- iOS组件化方案-总结第一篇
- iOS项目目录结构组织的一些总结
- 总结IOS界面间跳转的几种方法
- ios frame、bound和center定义及使用场景总结
- iOS开发之仿射变换示例总结
- 【iOS开发干货】Objective-C基础知识点总结(一)
- ios中 @try和@cache关键字的使用方法