Как записать ковариантные свойства readwrite в продолжениях классов? - PullRequest
0 голосов
/ 13 сентября 2010

Учитывая следующий пример

// 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 голосов
/ 13 сентября 2010

Вы сделали это правильно.Проблема здесь в том, что NSArray не является NSMutableArray.Если вы также сделаете приватное свойство NSArray, а затем напишите свой собственный установщик, который принимает NSMutableArray, он должен работать должным образом.

...