使用以下内容之间有什么区别:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dir = [paths objectAtIndex:0];
NSString *dir2 = paths[0]; // this throws incompatible type exception
答案 0 :(得分:3)
paths
是指向您发送NSArray
消息的objectAtIndex:
实例的指针。接收方返回id
。paths[0]
是纯C中数组开头的内存地址。[]
和NSArray
不是一回事。 答案 1 :(得分:1)
对于那些现在发现这个问题的人来说,仅供参考...
使用LLVM,Objective-C支持对象下标。所以,
paths[0]
相当于
[paths objectAtIndexedSubscript:0]
与
相同[paths objectAtIndex:0]
提供的路径是NSArray。
有关更多Objective-C文字语法,请参阅此处的文档:http://clang.llvm.org/docs/ObjectiveCLiterals.html