0

如果我想创建一个 2x2 数组,我会这样做:

NSArray *theArray = [NSArray arrayWithObjects:
    [NSArray arrayWithObjects:@"String1",@"String2",nil],
    [NSArray arrayWithObjects:@"String3",@"String4",nil],
nil];

但是,如果我想以另一种方式创建它,我会收到错误“表达式不可分配”

[self theArray] = [NSArray arrayWithObjects:
    [NSArray arrayWithObjects:@"String1",@"String2",nil],
    [NSArray arrayWithObjects:@"String3",@"String4",nil],
nil];

在上面的示例中使用我的 [self theArray] 的正确方法是什么?

4

2 回答 2

8
self.theArray = [NSArray arrayWithObjects:...

[self theArray]是访问器,而不是修改器

或者你可以使用

[self setTheArray:[NSArray arrayWithObjects:...];
于 2013-03-20T18:42:29.090 回答
5

属性分配是使用点符号完成的。要保持简短,请使用NSArray文字语法。

self.theArray = @[
    @[@"String1", @"String2"],
    @[@"String3", @"String4"]
];

这假设您theArray当然声明为属性并且设置器可用:

@property(strong) NSArray *theArray;
于 2013-03-20T18:48:00.613 回答