gpt4 book ai didi

ios - 轻量级泛型和类方法

转载 作者:搜寻专家 更新时间:2023-11-01 05:39:39 25 4
gpt4 key购买 nike

我在 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,但是没有。

最佳答案

我相信 __kindof 只在 Objective-C 中使用,Swift 类型没有类似的构造。

关于ios - 轻量级泛型和类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com