我在NSManagedObject
上有一个核心数据类别方法,它返回与谓词匹配的对象数组:
+ (NSArray *)objectsWhere:(NSPredicate *)predicate
我希望注释的返回类型,以便我不必在Swift中执行转换。
例如,我想说:
let modelArray = Model.objectsWhere(predicate)
// Do stuff to an array of Models.
而不是
if let modelArray = Model.objectsWhere(predicate) as? [Model] {
// Do stuff to an array of models.
}
这可能吗?如果是这样,那怎么做呢?我试过了:
+ (NSArray<id>)objectsWhere:(NSPredicate* _Nonnull)predicate
+ (NSArray<NSManagedObject *>)objectsWhere:(NSPredicate* _Nonnull)predicate
+ (NSArray<__kindof NSManagedObject *>)objectsWhere:(NSPredicate* _Nonnull)predicate
他们都坚持要把结果投到[Model]
。 id
并不令人感到惊讶,但我真的希望__kindof
位能够正常工作,因为所有模型都是NSManagedObject
,但没有。
答案 0 :(得分:0)
我相信__kindof
仅用于Objective-C,并且Swift类型没有类似的构造。
答案 1 :(得分:0)
简短的回答是,你无法做到这一点,这是一种无赖。