指示返回的实例是派生类

时间:2016-10-20 10:04:02

标签: objective-c cocoa cocoa-touch

我有一个函数,它返回从RLMObject派生的类的实例(可以返回不同的类实例,但都是从RLMObject派生的)

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

所以我目前用它作为

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

但我知道有一种方法可以在没有强制转换的情况下进行,只是通过暗示,返回的值是来自RLMObject的派生类,所以我可以使用它像

Rating * realmObject = [self createOrImport:object];

这可以通过id完成,但我想要更具体,而不仅仅使用id ... smth。如

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

1 个答案:

答案 0 :(得分:1)

__ kindof是神奇的关键字

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

因故事板方法而被发现

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