0

自从我开始 iPhone 开发以来,我一直有点困惑,哪种方式是作为班级成员访问数据的最佳方式。

假设我有一个名为 MyClass 的类,其中我有:

@interface MyClass : NSObject {
    int myInt;
}

@property (nonatomic, assign) int myInt;

在实现中,这样做是否更好:

myObject.myInt = 1;

或这个?

[myObject setMyInt:1];

这也适用于读取值。

int newInt = myObject.myInt;

对比

int newInt = [myObject myInt];
4

3 回答 3

8

没关系,它们是一样的。点语法很方便您使用,我觉得它使您的代码更干净。

我发现使用点语法会从编译器中引发警告或错误的一种情况是,如果您有一个 id 对象,即使您知道它具有该属性。

id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it
于 2009-08-11T03:49:48.597 回答
2

对象的类型使用 . 语法,但不使用 [] 语法。这意味着您不能使用 . 如果未指定对象的类型,并且在指定时使用它是有益的,那么编译器将为您提供更多帮助。

于 2009-08-11T04:30:18.390 回答
0

Objective-C 中的点语法本质上是使用访问器方法的简写。消息仍然通过访问器方法发送。希望这能回答你的问题

于 2009-08-11T03:45:35.487 回答