文档说明它可以在MacOS 1.08中使用。
那故事是什么? iOS5怎么样?
这是一个非常重要的选择器,因为self [5]实际上会变成[self objectAtIndexedSubscript:5],除非我遗漏了什么。
在NSOrderedSet中不起作用,但在NSArray中起作用。
我错过了什么?
答案 0 :(得分:7)
虽然iOS 6之前的objectAtIndexedSubscript:
不可用,但NSArray
和NSDictionary
下标 可用。这意味着你可以使用这样的语法:
myArray[2] = @"thingie";
myDictionary[@"roger"] = @"barry";
但NSOrderedSet
下载 不会在iOS 5和之前的版本上运行。为此,您需要提供一个将objectAtIndexedSubscript:
次调用重定向到objectAtIndex:
的类别。
附录:Apple NSMutableOrderedSet
的文档也不正确。它声明索引下标执行插入,而实际上是替换(正如人们所期望的那样)。
答案 1 :(得分:3)
答案 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。