代码之家  ›  专栏  ›  技术社区  ›  azamsharp

objectAtIndex和[0]之间的差异

  •  0
  • azamsharp  · 技术社区  · 16 年前

    使用以下各项有什么区别:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
        NSString *dir = [paths objectAtIndex:0]; 
    
        NSString *dir2 = paths[0]; // this throws incompatible type exception
    
    2 回复  |  直到 16 年前
        1
  •  3
  •   falconcreek    16 年前
    1. paths NSArray 你要发送 objectAtIndex: 信息。接收器返回 id .
    2. paths[0] 是纯C中数组开头的内存地址。 [] 不可变数组
        2
  •  1
  •   Matt    13 年前

    告诉所有发现这个问题的人。。。

    对于LLVM,Objective-C支持对象订阅。所以,

    paths[0]
    

    相当于

    [paths objectAtIndexedSubscript:0]
    

    这和

    [paths objectAtIndex:0]
    

    提供的路径是NSArray。

    有关Objective-C文本语法的更多信息,请参阅以下文档: http://clang.llvm.org/docs/ObjectiveCLiterals.html