dka*_*ich 0 iphone macos objective-c accessor
自从我开始进行iPhone开发以来,我一直很困惑,哪种方式是作为Class中的成员访问数据的最佳方式.
假设我有一个名为MyClass的类,其中我有:
@interface MyClass : NSObject {
int myInt;
}
@property (nonatomic, assign) int myInt;
Run Code Online (Sandbox Code Playgroud)
在实现中,最好是这样做:
myObject.myInt = 1;
Run Code Online (Sandbox Code Playgroud)
或这个?
[myObject setMyInt:1];
Run Code Online (Sandbox Code Playgroud)
这也适用于读取值.
int newInt = myObject.myInt;
Run Code Online (Sandbox Code Playgroud)
与
int newInt = [myObject myInt];
Run Code Online (Sandbox Code Playgroud)
它并不重要,它们是一回事.点语法是一种便于您使用的方法,我觉得它可以使您的代码更清晰.
我发现使用点语法抛出警告或错误来自编译器的一种情况是,如果你有一个id对象,即使你知道它有该属性.
id someReturnedObject = [somethingObject someMysteryObjectAtIndex:5];
int aValue = 0;
aValue = someReturnedObject.value; // warning
aValue = [someReturnedObject value]; // will just do it
Run Code Online (Sandbox Code Playgroud)