代码之家  ›  专栏  ›  技术社区  ›  maček

Objective-C:消息语法与点语法;有什么区别?

  •  4
  • maček  · 技术社区  · 15 年前

    如果我在用 @synthesize foo; ,以下各项之间的区别是什么:

    // message syntax
    [myObj setFoo:5];
    [myObj foo];
    

    // dot syntax
    myObj.foo = 5;
    myObj.foo;
    

    我喜欢点语法的一致性,但我不知道它是否在做我应该关心的事情。

    任何额外的信息都会有很大的帮助。

    2 回复  |  直到 15 年前
        1
  •  12
  •   Jacob Relkin    15 年前

    使用点语法和使用消息语法在功能上没有区别。

    我发现使用消息语法与整个语言更为一致,而dot语法的实现只是为了方便那些从使用它的语言(想到Java)过来的程序员。

    我只要求:无论你选择哪一个,都要与之保持一致。 不要混合和匹配单个属性设置程序 ! (多个参数设置器显然是免税的)。

        2
  •  3
  •   Stephen Furlani    15 年前

    他们是一样的。

    点语法用于表示 @property 您也可以通过以下途径访问:

    [myObject setValue: [NSNumber numberWithIntValue:5] forKey:@"foo"];
    [myObject valueForKey:@"foo"];
    

    推荐文章