iphone - 将 Objective-C 保留类变量设置为新对象时,是否必须对其调用release?

标签 iphone objective-c cocoa

假设我有:

@property(非原子,保留)NSString *foo;

在某堂课上。

我打电话:

myclass.foo = [NSString stringWithString:@"string1"];
myclass.foo = [NSString stringWithString:@"string2"];

我应该在将 [myclass.foo release] 设置为“string2”之前调用它以避免内存泄漏吗?

或者说没有任何东西再指向第一个“string1”对象就足够了?

并且在dealloc方法中[foo release]将会被调用。

最佳答案

来自Apple Docs关于声明的属性:

retain
Specifies that retain should be invoked on the object upon assignment. (The default is assign.)
The previous value is sent a release message.

关于iphone - 将 Objective-C 保留类变量设置为新对象时,是否必须对其调用release?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706411/

相关文章:

objective-c - 关于缺少类别方法实现的编译时警告

objective-c - 从一个 NSMutableArray 中删除包含在另一个数组中的元素

objective-c - 如何在 objective-c 中获取当前时区

iphone - iOS 5 有垃圾收集功能吗?

iphone - 你能确定插入iphone/ipad/ipod耳机插孔的具体设备类型吗?

ios - 创建密码实例 Objective-C 并获取 block 大小

iOS - 复制 UITextView

ios - 检测 iPhone 何时连接到任何配对的汽车

iphone - iPad 中的 SplitView - 保持两个 View 而不弹出窗口

cocoa - Applescript 无法打开应用程序