奇怪的objective-c语法 - 方括号和@符号

时间:2012-11-20 21:31:28

标签: iphone objective-c ios ipad syntax

我在我的一个项目中使用GHSidebarNav,我遇到了这个代码分配一个对象数组。我只是不知道它在做什么。它只是一个阵列吗?什么是这种奇怪的@[...]语法?我之前没见过:

NSArray *controllers = @[
    @[
        [[UINavigationController alloc] initWithRootViewController:[[GHRootViewController alloc] initWithTitle:@"Profile" withRevealBlock:revealBlock]]
    ],
    @[
        [[UINavigationController alloc] initWithRootViewController:[[GHRootViewController alloc] initWithTitle:@"News Feed" withRevealBlock:revealBlock]],
        [[UINavigationController alloc] initWithRootViewController:[[GHMessagesViewController alloc] initWithTitle:@"Messages" withRevealBlock:revealBlock]],
        [[UINavigationController alloc] initWithRootViewController:[[GHRootViewController alloc] initWithTitle:@"Nearby" withRevealBlock:revealBlock]],
        [[UINavigationController alloc] initWithRootViewController:[[GHRootViewController alloc] initWithTitle:@"Events" withRevealBlock:revealBlock]],
        [[UINavigationController alloc] initWithRootViewController:[[GHRootViewController alloc] initWithTitle:@"Friends" withRevealBlock:revealBlock]]
    ]
];

2 个答案:

答案 0 :(得分:7)

这些是数组文字,一种容器文字,Xcode 4.4及更高版本中的available

请参阅:

答案 1 :(得分:3)

这是一个新的目标C文字,它声明了一个多维数组。

它正在取代[NSArray arrayWithObjects:[NSArray arrayWithObjects:...], [NSArray arrayWithObjects:..]]];