Ios4 alloc、copy和new之间有什么区别?
alloc、copy和new之间的实际区别是什么?assign和nonatomic属性又有什么区别。Ios4 alloc、copy和new之间有什么区别?,ios4,memory-management,Ios4,Memory Management,alloc、copy和new之间的实际区别是什么?assign和nonatomic属性又有什么区别。 alloc alloc是一个类选择器(例如,名为like的示例) 它返回NSObject*类型的未初始化的指针 Init 要完成初始化,必须在实例本身上调用适当的指定初始值设定项: [[NSObject alloc] init] 将返回可用的NSObject*指针 新的 新函数基本上执行alloc->init,但它是在类级别直接调用的: NSObject* aObj = [NSObj
- alloc
- Init
[[NSObject alloc] init]
将返回可用的NSObject*指针
- 新的
NSObject* aObj = [NSObject new]
NSObject* aObj = [[NSObject alloc] init]
它们是相似的
- 非原子的
- 复制
aObj.copyProperty = otherValue
copyProperty变量将copyWithZone:信号发送到otherValue对象
换句话说,如果copyProperty符合NSCopying协议,它最终将具有与otherValue相同的属性,但将具有自己的地址和保留计数,因此位于与otherValue完全不同的内存部分
基本上,copyProperty将占用与otherValue相同的内存空间
- 分配
aObj.prop = aProperty
属性属性合成的变量将直接分配给属性,这意味着它们将共享完全相同的地址并保留计数
使用assign时,不会占用额外的内存空间
我希望这对你有帮助。欲了解更多信息,请阅读
aObj.prop = aProperty