Objective c 收件人是否与。。。方法-内存管理

Objective c 收件人是否与。。。方法-内存管理,objective-c,memory-management,Objective C,Memory Management,toNewbie问题:有人能帮我理解一下,如果一封信的接收人。。。。方法获取返回对象的所有权,并应对其进行管理。 例如: NSString *msg; //could be used to hold some data, then [msg initWithFormat: @"some text"]; //do I need to do a retain or is the method returning an auto-released string object 只是想让我的头脑集中在那

toNewbie问题:有人能帮我理解一下,如果一封信的接收人。。。。方法获取返回对象的所有权,并应对其进行管理。 例如:

NSString *msg; //could be used to hold some data, then
[msg initWithFormat: @"some text"]; //do I need to do a retain or is the method returning an auto-released string object

只是想让我的头脑集中在那些不显式使用alloc的方法上

名称中带有
init
的方法通常与
alloc
一起调用,如下所示:

MyObject *obj = [[MyObject alloc] init];

<代码> OLC/<代码>返回一个具有+1保留计数的对象,因此你不需要保留它。

除非你瞄准IOS 3或OS X 10.5,然后考虑为你的项目使用ARC。这样你就不必担心内存管理了
msg
不是有效的对象,因此无法向其发送消息。如果您正在创建一个实例,那么您将
alloc
发送到该类,并
init…
发送到该类的结果。这是可可大会。如果您看到了其他内容,请发布实际代码。否则,请阅读并查看此处。感谢您的澄清。我知道alloc/init组合,但是如果我调用initWith。。。便利初始化器,它是增加保留计数还是我必须手动调用retain[[msg initWithFormat:@“some text”]retain];请告诉我。@badboy11:没有带…便利初始值设定项的
初始值设定项。您必须首先向类发送消息以获取实例,如
[Weeble-weebleWithWobble:w]
。我想我已经慢慢开始理解了。我看了Stephen Kochan的Objective-C2.0编程。如果我调用[msg initWithString:@“some text”];在已声明的NSString指针上,则该指针将自动删除,除非我使用alloc或copy/retain字符串显式调用该类。@badboy11:它不会自动删除。你问的问题完全错了。除了
alloc
的结果外,不允许向任何对象发送
init
消息。