我很好奇是否重用分配给方便方法的变量是好的。
NSDictionary *address = [NSDictionary dictionaryWithObjectsAndKeys:@"Italy", @"Country",
address = [NSDictionary dictionaryWithObjectsAndKeys:@"England", @"Country", nil];
或者我应该只分配第二个新变量?
NSDictionary *address = [NSDictionary dictionaryWithObjectsAndKeys:@"Italy", @"Country",
NSDictionary *address2 = [NSDictionary dictionaryWithObjectsAndKeys:@"England", @"Country", nil];
欢呼加里
答案 0 :(得分:5)
第一个示例将使地址指针指向另一个对象,因此您将丢失对原始字典的引用。
因为它们是自动释放的,所以它不会泄漏内存,但您可能希望将来能够访问这两个词典。第一个例子不会为你做那个,你将丢失第一个字典。
第二个例子要好得多,它允许你独立引用两个词典,而不会踩到其中一个。
但是,如果您要合并两个词典,则应创建第一个词典的可变副本,然后使用addEntriesFromDictionary:
合并这两个词典。不要忘记在执行此操作时释放/自动释放您创建的可变副本。