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

Objective c 重用分配的类-是否需要释放它?,objective-c,Objective C,我对objective-c很陌生,我有个问题。重用我们分配的NSString_类可以吗 NSString_class = [NSString alloc] 像这样重复使用: str1 = [NSString_class initWithUTF8String: @"blah"] str2 = [NSString_class initWithUTF8String: @"blah"] 要发布,我不必发布NSU类,对吗?只有str1和str2 [str1 release] [str2 release

我对objective-c很陌生,我有个问题。重用我们分配的NSString_类可以吗

NSString_class = [NSString alloc]
像这样重复使用:

str1 = [NSString_class initWithUTF8String: @"blah"]
str2 = [NSString_class initWithUTF8String: @"blah"]
要发布,我不必发布NSU类,对吗?只有str1和str2

[str1 release]
[str2 release]
有几件事

alloc
init
分为两个不同的步骤是非常不寻常的

您的变量命名也有误导性。从分配实例中得到的是分配给指针的对象;这不是一个“课堂”

也就是说,您已经调用了
alloc
一次,这意味着您只有一个对象。如果为了使
str2
指向所需的字符串而更改其属性,则也为
str1
更改了它


另外,一个
alloc
意味着保留计数+1,使得两个
release
s不正确。

啊,谢谢@Phil。我之所以将其作为两个单独的类型,是因为我是从ctypes中执行此操作的。你知道吗,和doing
release
dpesmt返回true或false,所以我不知道我做的是否正确。这是关于对象,而不是指向它的变量。如果分配一个对象,则一个
release
与该分配匹配;不管有多少简单的变量指向它。(如果其他变量指向副本,情况就不同了。)