什么是使用OBJ-C存取和使用点语法之间的区别?
-
12-09-2019 - |
题
自从我在iPhone上发展开始我已经有点困惑,这是访问数据作为一类的成员的最好方式。
让我们说我有一个名为MyClass的类,并在其中我有:
@interface MyClass : NSObject {
int myInt;
}
@property (nonatomic, assign) int myInt;
在实施,是它更好地做到这一点:
myObject.myInt = 1;
或者这
[myObject setMyInt:1];
这也适用于读取值太
int newInt = myObject.myInt;
VS
int newInt = [myObject myInt];
解决方案
这其实并不重要,他们是同样的事情。点语法是一个方便这是有供您使用,我觉得它使你的代码更干净。
在一个情况下我发现使用点语法抛出警告或错误的编译器,如果你有有一个ID对象,即使你知道它有这个属性。
id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it
其他提示
的对象的类型的静态与检查。语法,但不与[]的语法。这意味着你不能使用。如果没有指定对象的类型,并且它有利于使用它时,它是,所以编译器会帮助你。
在Objective-C点语法本质上是使用存取方法的简写。该消息通过访问方法仍然被发送。希望回答您的问题
不隶属于 StackOverflow