【问题标题】:Objective-C NSArray AccessObjective-C NSArray 访问
【发布时间】:2016-01-08 08:21:24
【问题描述】:

似乎在Objective-C 中有两种访问NSArray 的方法。我可以通过以下方式访问NSArray'array'的'第i'个元素:

array[i]

[array objectAtindex:i]

这两个选项在功能上有区别吗?

【问题讨论】:

  • @luk2302 - 第一个实际上是一个object subscripting 表达式,它肯定不是一个literal,它在编程语言中具有a very specific meaning。注意:Objective-C 的数组和字典“文字”也不是真正的文字,而是 表达式 - Apple 在正式规范方面往往有点模糊 ;-(,所以不用担心这并随意认为我迂腐:-) :-)

标签: objective-c nsarray


【解决方案1】:

没有有细微的差别。

较短的版本使用objectAtIndexedSubscript:,而不是objectAtIndex:。这些方法的效果相同,但您可以在自己的类中实现 objectAtIndexedSubscript: 以允许使用 [index] 语法访问元素。

较短的版本可能是“现代 Objective-C 语法”的一个实例。

有关现代语法和其他更改的更多信息,请参阅this link

有关 Objective-C 文字的信息,请参阅 this other link,由 @luk2302 提供。

【讨论】:

  • 嗯,有一些的区别。第一个调用[NSArray objectAtIndexedSubscript:],第二个调用[NSArray objectAtIndex:]
  • @trojanfoe 根据NSArray documentation,这两种方法是相同的。
  • 它们的效果相同,但是代码调用了不同的方法。见this
  • @trojanfoe 有两种方法可以做同样的事情吗?我不明白如果它们具有相同的效果,为什么会提供两个。
  • 它允许任何类通过实现objectAtIndexedSubscript:来提供元素访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多