2011-05-27 100 views

回答

5
  • 的alloc

的alloc是一类选择器(即用于为例称为等)

[NSObject alloc] 

它返回一个非初始化指针NSObject的类型*的。

  • 初始化

完成初始化,您必须调用实例自身的固有指定初始化:

[[NSObject alloc] init] 

会返回一个可用的NSObject *指针。

新基本上没有一个页头 - >初始化除了它是直接在类级别称为:

NSObject* aObj = [NSObject new] 
NSObject* aObj = [[NSObject alloc] init] 

是相似的。

  • 非原子

甲非原子属性意味着,当该属性将(一组呼叫期间前)被写入无锁将被添加在由此属性合成的变量(即装置没有矫枉过正的时间@synchronize)。

所以如果你的财产不会被不同的线程同时改变,你可以安全地将它设置为非原子。

  • 副本

副本属性意味着,当你修改特性ex:

aObj.copyProperty = otherValue 

copyProperty变量将发送copyWithZone:信号到otherValue目的。

换句话说,如果你的copyProperty符合该NSCopying协议最终会具有相同的属性otherValue,但将有它自己的地址,并保留计数,因此被定位在一个完全不同的部分的内存为otherValue是。

基本上copyProperty将占用的内存空间作为otherValue

  • 分配

分配的属性意味着,当你这样做:

aObj.prop = aProperty 

酒店所合成的变量道具将直接被分配到aProperty这意味着他们将分享确切的相同的地址和保留计数

当您使用assign时,没有额外的内存空间被占用。

我希望这可以帮助你。欲了解更多信息,请阅读Apple Memory Management Documentation

相关问题