【问题标题】:What is the meaning of @[object1, object2]? [duplicate]@[object1,object2] 是什么意思? [复制]
【发布时间】:2012-10-16 17:12:56
【问题描述】:

可能重复:
What kind of object does @[obj1, obj2] create?

查看 Xcode 中的 Master-Detail 模板,在 App Delegate 中,SplitViewController 的视图控制器设置如下:

self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];

我不知道方括号前的@符号的用途是什么。这就是不使用[NSArray arrayWithObjects:]NSArrays 的制作方式吗?

【问题讨论】:

  • @ 通常表示“后面是一个Objective-C对象或符号”;有关方括号的含义,请参见 mipaldi 的答案。在我的脑海中,它也适用于引号(用于字符串)、大括号(用于字典)、普通括号(用于数字)和特殊关键字的正常范围(接口、选择器、类等)。
  • 是的,我已经学习 Objective-C 一个多月了,所以我看到了很多 @"NSString"、@selector(method:) 和 [@ "Format Object: %@", object] 但我从未见过@[]。
  • @InfinityJames 新的 Objective-C 文字语法今年才出现,所以这可能就是为什么你还没有看到它的原因。由于它真正所做的只是提高可读性,因此如果您的代码非常稳定,则可以忽略它。
  • 干杯汤米,这是有道理的。我想知道这是否是 iOS 6 的另一个补充。
  • 从技术上讲,它不是 iOS 6 的新增功能,因为编译器这样做只是为了简化语法而不是新功能,但它在 iOS 6 中或多或少出现了,所以这绝对是你的上下文最有可能看到使用情况。

标签: objective-c cocoa nsarray objective-c-literals


【解决方案1】:

这是一个新的语法特性。它是使用给定对象创建数组 (NSArray) 的语法糖。

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 1970-01-01
    • 2015-01-26
    • 2012-05-02
    • 1970-01-01
    • 2014-11-13
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多