就我的研究关注Objective C而言,我发现这段代码用于显示数组元素:
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:@"a", @"b", @"c"];
int x = 0;
for(; x<[myArray count]; x++)
NSLog(@"value at index %i is %@", x, [myArray objectAtIndex:x]);
我很好奇,如果可以在下面这样做:使用[myArray[x]]
代替[myArray objectAtIndex:x]
而不是
for(; x < [myArray count]; x++)
NSLog(@"value at index %i is %@", x, [myArray[x]]);
答案 0 :(得分:1)
不,不是。 NSArray不是C数组;它是一个像任何其他对象一样的对象,您必须使用完整的消息语法与您与任何其他对象进行通信的方式进行对话。 (你正在寻找的唯一“快捷方式”是属性。)对不起,但Objective-C非常冗长,这是一个很好的例子。您将习惯于尽可能地使用代码完成,以避免键入所有这些字母......
答案 1 :(得分:1)
你不能,原因很简单:Objective-C基于C并保持向后兼容性。
在C中,在对象上使用[i]
将调用该对象的[]
运算符。但是,在本地范围内,所有Objective-C对象都只是指针,这使得调用类似于int[3]
。这看起来对你有用吗?
为[]
实施NSArray
意味着打破向后兼容性。