我想创建一个带有此签名的接口,但没有自动合成的实例变量:
@interface MyObject : NSObject
@property (nonatomic, copy) NSArray *values;
@end
是否可以防止实例变量在.m @implementaion中自动合成,因为我想实现自己的getter和setter,我不打算使用实例变量。
原因是我不希望有内存开销,因为数据将存储在普通字节存档中。同时,我不希望用户知道实现问题并保持接口签名不变。
@implementation MyObject {
NSData *_data
{
- (NSArray *)values
{
// Generate NSArray from _data
}
- (void)setValues(NSArray *)values
{
// Set _data from values
}
#pragma mark - Hidden init
- (id)initWithData:(NSData *)data
{
// Set _data
}
@end
答案 0 :(得分:2)
如果您自己实现getter和setter,则不会合成实例变量。
答案 1 :(得分:0)
正如其他人所说 - 如果你覆盖了setter和getter - 编译器不会做任何其他事情。所以你想要的......就是你输入的内容。
答案 2 :(得分:0)
如果您不想创建仅创建实例变量。
@interface MyObject : NSObjet
{
NSArray *values;
}
@end