这段代码之间的行为是否有任何差异 - 无论是在编译时还是在运行时......
// MyClass.h
@interface MyClass : NSObject
@property (nonatomic) SomeType myProperty;
@end
// MyClass.m
@implementation MyClass
@end
...这个代码?
// MyClass.h
@interface MyClass : NSObject
-(SomeType)myProperty;
-(void)setMyProperty:(SomeType)myProperty;
@end
// MyClass.m
@implementation MyClass {
SomeType _myProperty;
}
-(SomeType)myProperty {
return _myProperty;
}
-(void)setMyProperty:(SomeType)myProperty {
_myProperty = myProperty;
}
@end
显然,前一个版本更简洁易读,但在行为上有什么不同吗?合成的 getter 和 setter 做的事情是否比我在这里的直接实现更复杂?属性的声明是否可以通过自省函数与 getter 和 setter 的声明区分开来?还有其他我没有想到的区别吗?