我正在 Xcode 4.6.1 上为 iOS 6 开发
我正面临一个非常奇怪的问题。当您NSMutableArray
将它们分配给另一个时,它们会以某种方式“链接”NSMutableArray
吗?
这是我的代码:
ViewController.m
@interface ViewController ()
{
NSMutableArray *one;
NSMutableArray *two;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
one = [[NSMutableArray alloc] init];
two = [[NSMutableArray alloc] init];
[one addObject:@"item1"];
[one addObject:@"item2"];
[one addObject:@"item3"];
two = one;
NSLog(@"First log: %@ and %@",one, two);
[one addObject:@"item4"];
NSLog(@"Second log: %@ and %@",one, two);
}
我只是添加 3 个项目到one
. 然后我将它分配给two
. 现在,当我将另一个对象添加到 时one
,它也会被添加到two
。为什么是这样?它们是否以某种方式“链接”?
这是日志:
First log: (
item1,
item2,
item3
) and (
item1,
item2,
item3
)
Second log: (
item1,
item2,
item3,
item4
) and (
item1,
item2,
item3,
item4
)
我的解决方法是使用 aNSArray
而不是NSMutableArray
因为NSArray
s 不可更改。但我真的很想知道为什么会这样?我错过了一些非常明显的东西吗?
谢谢!