我有NSManagedObject
核心數據類中的方法,它返回匹配謂詞對象的數組:輕量級泛型和類方法
+ (NSArray *)objectsWhere:(NSPredicate *)predicate
我想返回類型進行註釋,使得我不必須在Swift中進行演員陣容。
E.g,我想說:
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
,但沒有。
你試過的3個簽名的swift返回類型是什麼? – Kevin
'Model'是所有模型類的基類?但是,'NSManagedObject'不是'Model'。顯示Swift代碼。 –
你碰巧找到解決你的問題?因爲我處於相同的位置。 – Buju