珊瑚角将在区域援助团中分配记忆吗?
NSArray *obj = [[NSArray arrayWithObjects:
@"Hai", @"iHow",
nil] retain];
珊瑚角将在区域援助团中分配记忆吗?
NSArray *obj = [[NSArray arrayWithObjects:
@"Hai", @"iHow",
nil] retain];
是的。 它将制造一个NSArray物体,将其储存在肥皂上。 阵列办法将自动释放的物体交还,但你的附加保留说明确保参考数至少为参考数,并赢得记忆,直到你明确公布为止。
也许值得补充的是,它不是分配记忆的“可持续”声明,而记忆则按阵列方法分配。 保留声明只是增加了该物体的参考数。
在Tom的正确答复中添加以下字句:
[NSArray arrayWithObjects: ...]
相当于:
[[[NSArray alloc] initWithObjects:...] autorelease]
而不是打上<代码>retain 在第一行,你可以这样做:
[[NSArray alloc] initWithObjects:...]
不管怎样,记忆在<代码>>><>>/代码>中分配,不论该方法出现在你的代码中,还是隐含的(因为这种方法属于自动使用舱面方法的方便词,如第一种)。