2016-10-20 2 views
0

У меня есть функция, которая возвращает экземпляр класса, производный от RLMObject (может возвращать различные экземпляры классов, но все производное от RLMObject)Указав, что возвращенный экземпляр является производным классом

- (nullable RLMObject *)importObject:(nonnull NSDictionary *)object; 

так я в настоящее время использует его в

Rating * realmObject = (Rating *)[self createOrImport:object]; 

, но я знаю, что есть способ сделать это без актеров, просто вовлекая, что возвращаемое значение является производным классом от RLMObject, так что я могу использовать его как

Rating * realmObject = [self createOrImport:object]; 

это может быть сделано с идентификатором, но я хочу быть более конкретным, чем использовать только id ... smth. в

- (nullable derived RLMObject *)importObject:(nonnull NSDictionary *)object; 
+0

В каждом производном классе можно переопределить 'importObject:' и указать обратный объект класс, и в нем просто вызовите '[super createOrImport: object]'? – Larme

+0

naah, я помню, что было ключевое слово для этого, я случайно споткнулся вверх, но не смог найти его снова –

+0

волшебным ключевым словом был __kindof –

ответ

1

__kindof магия ключевое слово

- (nullable __kindof RLMObject *)importObject:(nonnull NSDictionary *)object; 

узнал из метода раскадровки

- (__kindof UIViewController *)instantiateViewControllerWithIdentifier:(NSString *)identifier; 

 Смежные вопросы

  • Нет связанных вопросов^_^