objectAtIndexedSubscript在IOS5中可用吗?

时间:2012-11-15 03:31:14

标签: objective-c xcode

文档说明它可以在MacOS 1.08中使用。

那故事是什么? iOS5怎么样?

这是一个非常重要的选择器,因为self [5]实际上会变成[self objectAtIndexedSubscript:5],除非我遗漏了什么。

在NSOrderedSet中不起作用,但在NSArray中起作用。

我错过了什么?

4 个答案:

答案 0 :(得分:7)

虽然iOS 6之前的objectAtIndexedSubscript:不可用,但NSArrayNSDictionary下标 可用。这意味着你可以使用这样的语法:

myArray[2] = @"thingie";
myDictionary[@"roger"] = @"barry";

it will deploy back to iOS 4

NSOrderedSet下载 不会在iOS 5和之前的版本上运行。为此,您需要提供一个将objectAtIndexedSubscript:次调用重定向到objectAtIndex:的类别。

附录:Apple NSMutableOrderedSet的文档也不正确。它声明索引下标执行插入,而实际上是替换(正如人们所期望的那样)。

答案 1 :(得分:3)

,仅限iOS 6以来。

Apple为OS X和iOS API提供单独的文档。你必须检查正确的:objectAtIndexedSubscript:

  

可用性
  适用于iOS 6.0及更高版本。

答案 2 :(得分:1)

如果您需要在iOS 5上运行代码,则需要替换

myOrderedSetOfHilariousAcronyms[2] = @"ROFL";

[myOrderedSetOfHilariousAcronyms setObject:@"ROFL" atIndex:2];

答案 3 :(得分:0)

我看一下NSOrderedSet.h文件,我看到了这个:

- (id)objectAtIndexedSubscript:(NSUInteger)idx NS_AVAILABLE(10_8, 6_0);

因此它不适用于IOS5。