我想以抽象的方式执行以下操作:
// .h
@interface SomeObject : NSObject
@property (readonly) NSArray myProperty;
@end
// .m
@interface SomeObject ()
@property (readwrite) NSMutableArray myProperty;
@end
@implementation SomeObject
@end
根据Mac 开发人员库中的使用属性子类化部分,允许readonly
使用readwrite
. 不起作用的是使用属性类型的子类。我以 NSMutableArray 为例,但它可以是任何其他类/子类组合。
根据继承规则,应该没问题。readonly
只生成也允许返回子类对象的getter。
当您需要某些属性的子类类型供内部使用时,您如何处理这种情况?
以下是一种丑陋的方式,但我想避免这种情况,因为这意味着self.
在访问子类方法时我不能使用 getter 和 setter。
// .h
@interface SomeObject : NSObject
@property (readonly) NSArray myProperty;
@end
// .m
@implementation SomeObject {
NSMutableArray _myProperty;
}
@synthesize myProperty = _myProperty;
@end