重用已分配的类 - 是否需要释放它?

时间:2015-05-10 16:46:21

标签: objective-c

我对Objective-c很新,我有一个问题。可以重用我们分配的NSString_class吗?

NSString_class = [NSString alloc]

重复使用:

str1 = [NSString_class initWithUTF8String: @"blah"]
str2 = [NSString_class initWithUTF8String: @"blah"]

并发布我不必释放NSString_class吗?只是str1和str2?

[str1 release]
[str2 release]

1 个答案:

答案 0 :(得分:2)

有几件事......

allocinit分成两个不同的步骤是非常不寻常的。

您的变量命名也具有误导性。从分配实例中获得的东西是您分配给指针的对象;它不是“......类”。

话虽如此,你曾经称alloc一次,这意味着你只有一个对象。如果您更改其属性以使str2指向您想要的字符串,那么您也已将其更改为str1

此外,一个alloc表示保留计数为+1,导致两个release不正确。