NSManagedObject
조건 자와 일치하는 개체 배열을 반환하는 Core Data 범주 메서드 가 있습니다.
+ (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
이지만 아니기 때문에 비트가 작동하기를 정말로 바랬습니다 .
짧은 대답은 당신이 그것을 할 수 없다는 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다