Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 我可以在Objective C项目中使用swift代码块或文件/类吗_Objective C_Swift_Xcode - Fatal编程技术网

Objective c 我可以在Objective C项目中使用swift代码块或文件/类吗

Objective c 我可以在Objective C项目中使用swift代码块或文件/类吗,objective-c,swift,xcode,Objective C,Swift,Xcode,在标记此副本之前,请注意,我已经研究了此问题 但这是关于导入一个库 我想知道我是否能在objective C项目中编写swift的代码块。或者在同一项目中添加新文件/类,而不是创建单独的swift库,然后导入库 例如,我们可以在.mm文件中编写目标C中的C代码,是否有类似的方法将swift代码合并到目标C代码中 是否有类似的方法将swift代码合并到目标C代码中 不,它们是两种不同的语言,必须进入两个不同的文件。文件后缀告诉编译器要使用哪种语言 它在mm文件中适用于Objective-C的原因是

在标记此副本之前,请注意,我已经研究了此问题 但这是关于导入一个库

我想知道我是否能在objective C项目中编写swift的代码块。或者在同一项目中添加新文件/类,而不是创建单独的swift库,然后导入库

例如,我们可以在.mm文件中编写目标C中的C代码,是否有类似的方法将swift代码合并到目标C代码中

是否有类似的方法将swift代码合并到目标C代码中

不,它们是两种不同的语言,必须进入两个不同的文件。文件后缀告诉编译器要使用哪种语言

它在mm文件中适用于Objective-C的原因是Objective-C++是Objective-C的超集,而Objective-C本身就是C的超集;从Objective-C++的角度来看,它们都是相同的语言。但是Swift和Objective-C在任何意义上都不是同一种语言

或者在同一项目中添加新文件/类,而不是创建单独的swift库,然后导入库

当然可以。同一目标可以同时包含Objective-C和Swift文件。他们不能生活在同一个文件中

我想知道我是否能在objective C项目中编写swift的代码块

不,您不能像使用C一样在Objective-C源文件中编写Swift代码

或者在同一项目中添加新文件/类

是的,绝对是。这是有案可查的

我想知道我是否能在objective C项目中编写swift的代码块

不,那是不可能的。mm文件不是Objective-C,而是Objective-C++文件,它是objc语言的超集

或者在同一项目中添加新文件/类

这是可以做到的,你需要做的就是在.m文件中导入具有你想要的函数的Swift类。要导入,您需要一个文件名结构,例如
#import“MySwiftClassName Swift.h”
。将.m中的函数作为任何objc编写的函数调用。
唯一需要注意的是功能的可见性(只有当您还有objective-c桥接头时,才能访问专用swift功能,默认情况下,开放和公共swift功能可用)

同样,您不能将Objective-C放入.C文件中。对于超集语言来说,它只能以另一种方式工作,因为作为超集,它们是同一种语言。