@ [在目标C中的含义

时间:2014-01-12 17:53:22

标签: objective-c nsarray

例如:

[[FlyoutTableViewController alloc] initWithViewControllers:@[@[firstNavigationController],@[secondNavigationController]]];

- (id)initWithViewControllers:(NSArray *)viewControllers

我知道它正在向initWithViewControllers发送这些视图控制器的NSArray,但我想知道更多关于这种创建数组的方法。什么是好处,任何潜在的问题等?

另外,对象,firstNavigationController和secondNavigationController是否需要在@ [或者那里,或者那里发生了什么?

TIA

5 个答案:

答案 0 :(得分:0)

@[item1, item2, item3][NSArray arrayWithObjects:item1, item2, item3, nil]的语法糖。只不过是速记。没有比它扩展到的方法更多的好处或问题。

你可以像这样制作数组数组。 @ [@ [item1]]是一个包含单个数组的数组,包含item1。

答案 1 :(得分:0)

这意味着您正在使用值定义数组。 e.g。

@[value1, value2, value3]

答案 2 :(得分:0)

这是一个数组文字。就像一个字符串文字@"My String"。用于创建数组的简写表示法。 NSString版本(不可变)的类似用法和限制。

因此,@[firstNavigationController]会创建一个NSArray,其中包含一个项目。你的参数是一个数组数组。

答案 3 :(得分:0)

这是创建NSArray的简便方法。

NSArray *array = [[NSArray alloc] init];

相当于

NSArray *array = @[];

您可以看到更多objective-c文字here

答案 4 :(得分:0)

让我给你一个类比。

"A String":C-string

@"A String":Obj-C字符串(NSString


{1,2}(不是[1,2]):C数组

@[@1, @2](不是@[1,2]):Obj-C数组(NSArray with NSNumber elements