如何在类连续中编写协变读写属性?

时间:2010-09-13 10:38:14

标签: iphone objective-c covariance

给出以下示例

// MyClass.h
@interface MyClass {
  NSMutableArray *queue;
}

@property (readonly, retain) NSArray *queue;

@end

// MyClass.m
@interface MyClass ()

@property (readwrite, retain) NSMutableArray *queue;

@end



@implementation MyClass

@synthesize queue;

@end

我从编译器收到Property 'queue' type in 'MyClass' class continuation does not match class 'MyClass' property警告。将“私人”协变设置器添加到类中而不用手写它们的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

你做得对。这里的问题是NSArray不是NSMutableArray。如果您将私有属性设置为NSArray,然后编写自己的接受NSMutableArray的setter,它应该按预期工作。