gpt4 book ai didi

objective-c - Objective-C 中表示数组的特殊方式

转载 作者:行者123 更新时间:2023-12-03 16:23:41 25 4
gpt4 key购买 nike

我在网上的很多地方甚至在苹果文档中都看到数组以以下格式表示:

@[obj1,obj2]

例如;在谓词编程指南中有这样的说法:

NSCompoundPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[greaterThanPredicate, lessThanPredicate]];

但是当我在代码中编写相同的内容时,我收到“程序中意外的@”(如预期的那样)编译器错误。这只是表示数组的一种方式还是我遗漏了一些东西?

最佳答案

这是一个relatively new syntax ,它仅适用于包含 clang 3.3 或更高版本的 Xcode。

这个

@[greaterThanPredicate, lessThanPredicate]

在逻辑上等价于*:

[NSArray arrayWithObjects:greaterThanPredicate, lessThanPredicate, nil]

您始终可以用旧语法替换新语法,而不会丢失功能。

编辑(回应 Nikolai Ruhe 的评论)Apple 有与开源版本不同的版本方案。引入该功能的正确版本号是:Apple 4.0、clang 3.1。


* 在底层,新语法的数组初始值设定项被转换为对 arrayWithObjects:count: 的调用。感谢 newacct进行更正。

关于objective-c - Objective-C 中表示数组的特殊方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15278604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com