有由ARC推出性能的两种新的内存管理的属性,strong和weak.
除了copy显然是完全不同的东西之外,vs 和vs 之间有什么区别吗?strongretainweakassign
根据我的理解,这里唯一的区别是weak将分配nil给指针,而assign不会,这意味着程序将在指针释放后向指针发送消息时崩溃.但是,如果我使用weak,这将永远不会发生,因为发送消息nil不会做任何事情.
我不知道strong和之间有什么不同retain.
是否有任何理由为什么我应该使用assign,并retain在新的项目,或者是那种被弃用?
使用Xcode 4.2和ARC,我注意到自动生成的代码NSManagedObject对于属性仍然如下:
@property (nonatomic, retain) NSString * someString;
Run Code Online (Sandbox Code Playgroud)
1)retain现在不应该用strong或替换weak?
2)为什么自动生成的代码仍然使用 retain
3)retain在此属性声明中,正确的替换是什么?
我正在调试使用的问题NSFetchRequest,我认为这可能是问题的根源.思考?
properties objective-c retain nsmanagedobject automatic-ref-counting
何时发布了发布方法?当我完成它时,我总是释放内存分配,现在看来该方法已被弃用.或者它可能不适用于某些对象?
无论如何,这就是我做的:
Customer *aCustomer = [[Customer alloc] init];
...
[aCustomer release];
Run Code Online (Sandbox Code Playgroud)
我在那里得到一个错误...任何人都在意解释为什么我发现错误,因为我释放了我的记忆?错误消息是:
'release'in unavailable:在自动引用计数模式下不可用ARC禁止显式消息发送'release'