Ios 覆盖对象…;这样行吗?
只是一个关于类对象的一般性两部分问题 1) 定义一个对象(比如NSArray或UIImage)然后用其他内容覆盖内容是否有问题?例如: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
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,好的,谢谢您的确认。我已经在各种各样的应用程序中进行了测试,但我只是想利用各种各样的人的经验,看看我是否遗漏了什么。