Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 覆盖对象…;这样行吗?_Ios_Objective C_Memory_Memory Leaks_Nsarray - Fatal编程技术网

Ios 覆盖对象…;这样行吗?

Ios 覆盖对象…;这样行吗?,ios,objective-c,memory,memory-leaks,nsarray,Ios,Objective C,Memory,Memory Leaks,Nsarray,只是一个关于类对象的一般性两部分问题 1) 定义一个对象(比如NSArray或UIImage)然后用其他内容覆盖内容是否有问题?例如: NSArray *usersInApp=[[NSArray alloc] initWithObjects:@"Barry",@"Horace",@"Marjorie",nil]; ... usersInApp=@[@"Elizabeth",@"Eddie"]; ... NSArray *newUsers=@[@"Beth",@"Axl"]; usersInApp

只是一个关于类对象的一般性两部分问题

1) 定义一个对象(比如NSArray或UIImage)然后用其他内容覆盖内容是否有问题?例如:

NSArray *usersInApp=[[NSArray alloc] initWithObjects:@"Barry",@"Horace",@"Marjorie",nil];
...
usersInApp=@[@"Elizabeth",@"Eddie"];
...
NSArray *newUsers=@[@"Beth",@"Axl"];
usersInApp=[NSArray arrayWithArray:newUsers];
2) 如果将一个实例设置为另一个实例(例如,如果最后一行是
usersInApp=newUsers;
),这是否意味着两个变量(
usersInApp
newUsers
)将引用相同的值

感谢阅读。

答案:

1) 没有

2) 对


问题:但是为什么不在调试器的帮助下自己尝试一下呢?

您根本没有覆盖对象。您正在覆盖指向对象的指针(对对象的引用)。那绝对好

  • 对。两个变量引用同一个对象
    是什么让你认为覆盖变量值是不正确的?嗨@Popeye,我认为这可能是正确的,但我想确定一下。我想我关心的是,如果我重写指向Barry、Horace等人的指针,他们是否还会被困在内存中;是表示[NSArray arrayWithArray:…]更简单的方法。与给定的赋值相比,复制可能会觉得效率低下@[…]会生成一个不可变数组,但如果不必要,它实际上不会“复制”。您好@dasdom,好的,谢谢您的确认。我已经在各种各样的应用程序中进行了测试,但我只是想利用各种各样的人的经验,看看我是否遗漏了什么。