如何在目标C中使用具有通用类型的Swift类

莫非斯78

我有以下带有NumericType T的swift类。

@objc class MathStatistics<T: NumericType> : NSObject {
        var numbers = [T]()

        func sum() -> T? {
            if numbers.count == 0 {
                return nil
            }

            var sum = T(0)

            for value in numbers {
                sum = sum + value
            }
            return sum
        }
    }

快速初始化类对象,如下所示:

let statistics = MathStatistics<Double>()

如何在Objective C中初始化同一对象?下一行未设置数字类型T。

MathStatistics *stats = [[MathStatistics alloc] init];
安德烈·戈迪耶丘克(Andriy Gordiychuk)

你不能 文档中所列

您可以访问标有@objc属性的类或协议中的任何对象,只要它们与Objective-C兼容即可。这不包括仅Swift的功能,例如此处列出的功能:

  • 泛型
  • 元组
  • 在Swift中定义的枚举
  • Swift中定义的结构
  • Swift中定义的顶级函数
  • 在Swift中定义的全局变量
  • Swift中定义的Typealiases
  • 斯威夫特风格的变数
  • 嵌套类型
  • 咖喱函数

您必须在类中摆脱泛型。然后您可以在Objective-C中使用它

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何引用具有多个界限的通用返回类型

在类中使用具有成员函数的通用std :: function对象

如何在Swift中使用没有类型参数的泛型类?

如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

如何在Swift中使用具有相同协议变量的多个协议?

如何在Swift中使用具有只读属性的Objective-C协议

如何将特征“注入”基类型类以在具有特征的通用类型方法中使用它们

如何在C#中使用循环调用具有不同名称的数组

如何在Python 3.6中使用具有不同值类型的Dict使用静态类型检查?

如何在Swift项目中使用目标C框架类?

如何在C中使用具有相同名称的不同枚举

如何在具有模板函数的类中使用类型安全的并集(变量)?

TypeScript:如何获取和使用具有多个声明的类方法的类型

如何在C#Windows窗体中使用具有空格的字体来创建Excel Workseet?

如何使用具有通用数据类型的printf / formatter在Java和POI的控制台中创建表

在Moq中使用具有CQRS模式的通用接口

如何在Swift中使Networking类通用?

用具有通用关联类型的关联类型扩展类型

如何在TypeScript中使用具有接口联合类型的实例?

具有通用类型的类

如何使用C#反射调用具有通用List参数的扩展方法?

使用具有协议和关联类型的通用类型?

如何在类型化数据集xsd中使用具有相同表结构的不同数据库

如何在具有通用视图的 URL 中使用 slug?

在 Typescript 中使用具有联合类型的 Mixin

如何在 useReducer 中使用具有必填字段的泛型类型?

如何使用具有关联类型的协议初始化通用枚举?

如何在 Tailwind CSS 中使用具有任意值的类

如何在 C++ 中使用具有另一个类对象的构造函数?