丁保国的博客

收集整理工作生活,点点滴滴

  :: :: 博问 :: 闪存 :: :: :: :: 管理 ::

这是一个难点:

 

  Attribute Auto Genreate Get Auto Genreate Set Description 应用场合
  readonly Y - 只会自动生成Get 方法  
  readwrite Y Y 自动生成Get, Set方法 对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等)      
Setter 语意 assign(weak) - Y 简单赋值,不更改索引计数,共享内存  
retain(strong) - Y 简单赋值,更改索引计数,共享内存 你可以想象一个NSString实例,它是一个对象,retain是创建一个指针,引用对象计数加1。
copy - Y 用于非共享内存时,每个指针有自己的内存空间  
原子性 atomicity        
nonatomic     常用nonatomic和strong  

 

 

 

 

上面的内容涵盖了Objective-C基础教程的第九章,第十章,第十一章。

首先,我们知道@property和@synthesize是合在一起用的,请看下面的例子:

.h file
@property int count;

like

- (int)count;
-(void)setCount:(int)newCount;

#####################################################################
.m file
@synthesize count;


like 

- (int)count
{
return count;
}
-(void)setCount:(int)newCount
{
count = newCount;
}

 

其实@property就是为了生成Get和Set方法。

 

Objecive C不像Java和C#那样,有自己的垃圾回收机制,在ARC(Auto Reference Counting)出现前,我们要手动写retain(+1), release(-1)。

我们现在常用的是readonly, readwrite,weak,strong,nonatomic.

readonly表示只会生成Get方法

readwrite会生成Get和Set方法,主要是对那些没有指针应用的简单类型。

我们比较长用的方法是 @property (strong, nonatomic) XXClass *xxObject;

在程序中为了避免重复引用: 我们配合Strong和Weak使用。

  Attribute Auto Genreate Get Auto Genreate Set Description 应用场合
  readonly Y - 只会自动生成Get 方法  
  readwrite Y Y 自动生成Get, Set方法 对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等)      
Setter 语意 assign(weak) - Y 简单赋值,不更改索引计数,共享内存  
retain(strong) - Y 简单赋值,更改索引计数,共享内存 你可以想象一个NSString实例,它是一个对象,retain是创建一个指针,引用对象计数加1。
copy - Y 用于非共享内存时,每个指针有自己的内存空间  
原子性 atomicity        
nonatomic     常用nonatomic和strong  
posted on 2015-06-25 14:48  丁保国  阅读(189)  评论(0编辑  收藏  举报