【发布时间】:2011-12-22 10:47:13
【问题描述】:
这是一个初学者的问题。 我今天需要一个新的字符串变量,所以我做了这样的事情:
NSString* newString = nil;
if(something)
newString = @"a value";
else
newString = @"different value";
它工作得很好。不过,我对内存分配确实了解一点,我担心这可能会导致某种问题,所以我最后将代码更改为:
NSString* newString = [NSString stringWithFormat:@""];
if(something) ...
我以前的做法是不好的做法吗? 我知道有些变量是自动分配的,所以你不需要为它们调用 alloc ,但不会将它们初始化为 nil 工作吗? 如果这个问题听起来很傻,我很抱歉,我从 php 来到 Objective-c,我对内存管理的了解接近.. nil
[编辑]
这不是关于 nil 与 @"" 的问题;
我的问题是是否可以简单地使用 NSString = something (nil, @"", @"a value") 并且通常可以对对象执行此操作。
例如,不用NSRandomObject = [[NSRandomObject* alloc] init];,我可以简单地做NSRandomObject = aValue;
【问题讨论】:
标签: objective-c memory-management