【发布时间】:2015-01-23 17:01:43
【问题描述】:
关于类对象的一般性两部分问题。
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)将引用相同的值?
感谢阅读。
【问题讨论】:
-
是什么让您认为覆盖变量值不合适?
-
嗨@Popeye,我认为这可能没问题,但想确定一下。我想我担心的是,如果我重写了指向他们的指针,Barry、Horace 等人是否还会被卡在某个地方。
-
usersInApp = [新用户复制];是一种更简单的说法 [NSArray arrayWithArray:...]。与给定 @[...] 的赋值相比,复制可能会感觉效率低下,但如果没有必要,它实际上不会“复制”。
标签: ios objective-c memory memory-leaks nsarray