创建一个本地对象以供以后使用是否更好,例如
NSDictionary *dic = [NSDictionary Dictionary];
或者
NSDictionary * dic = nil;
是偏好还是一种比另一种更好?
创建一个本地对象以供以后使用是否更好,例如
NSDictionary *dic = [NSDictionary Dictionary];
或者
NSDictionary * dic = nil;
是偏好还是一种比另一种更好?
如果您稍后将使用该对象,那么您应该使用第一个选项来实例化它。如果您必须在某个 if-else 块中创建一个对象,您将在其中使用一些自定义值重新初始化它,那么第二个选项就是要走的路。
例如第一个选项:
NSMutableArray *arr = [NSMutableArray array];
for (int i = 0; i < 5; i++) {
[arr addObject:@"string"];
}
或者
NSDictionary *dictionary = nil;
BOOL flag;
if (flag) {
dictionary = [NSDictionary dictionaryWithObject:@"string" forKey:@"myKey"];
}
else {
NSArray *objects;
NSArray *keys;
dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
}
这不是“一个更好”,而是“另一个不好”。
如果您稍后要为其分配一个新对象,请将其初始化为 nil,否则(您会通过丢失对错误创建的第一个对象的引用来泄漏内存。) - 编辑:不,您没有泄漏内存(或者因为自动释放或自动引用计数,但无论如何,这是一个额外的不需要的方法调用。)这很糟糕。
如果它是一个可变集合,请在使用它之前创建它,否则它将继续为 nil 并且基本上忽略发送给它的所有消息,这也很糟糕。
结论:这不是偏好问题 - 您必须逻辑思考并选择适合您使用它的特定目的的任何一个。