oc 和swift混编之 类型转换问题导致无法将方法映射

研究了swift的制定构造器和便利构造器,脑袋疼,想起了昨天的一个小问题,撰文以记之。

问题描述:

在swift里写了一个方法,想在一个oc 的类里调用,但是一直找不到,在映射文件里也没有看到那个方法暴露出来:

1.定义了要被调用的方法的swift类:
oc 和swift混编之 类型转换问题导致无法将方法映射_第1张图片
图一

2.想要使用swift类里那个方法的 OC 类:
oc 和swift混编之 类型转换问题导致无法将方法映射_第2张图片
图二

3.查看映射文件,找不到暴露出来的方法:
oc 和swift混编之 类型转换问题导致无法将方法映射_第3张图片
图三

这是怎么回事呢?明明方法在swift里写了,怎么没有对应的映射呢?

解决方案:

原来是我定义了一个枚举类型,而这个枚举类型,oc 解析不了。在oc 中的枚举类型的成员变量是整型,第一个成员变量的值默认为0,第二个为1,顺次递增。但是在swift里,枚举类型的成员变量类型可以为字符串、整型、浮点数。。。因为我写的那个方法里有个参数是swift的枚举类型,应该是oc 处理不了了。
我的解决方法是,指定swift枚举类型的类型,即:

图四

然后可以发现,该方法就可以愉快的映射到文件里,oc 的那个类也可以调用到它,接下来就可以愉快地码代码了。

你可能感兴趣的:(oc 和swift混编之 类型转换问题导致无法将方法映射)