我们可以使用Objective-C或Swift创建一个新的Xcode项目。
我想要检测,在创建项目时选择了哪种语言?
项目可以是Objective-C和Swift的混合,但我关心的是在项目创建过程中选择的语言。
可能是通过pbxproj文件或其他更好的方式。
谢谢。
发布于 2018-06-19 21:16:43
ObjC项目总是包含作为主函数的入口点。通常它在main.m文件中,但不是必需的。开发人员可以将其替换为任何名称。我尝试了两个简单的项目。一个是ObjC,第二个是Swift。当我尝试添加新文件时,Xcode为Swift项目提供了Swift语言,为Obj-C项目文件提供了Obj-C。接下来,我删除了Swift项目中的AppDelegate.swift文件,并添加了AppDelegate.h和AppDelegate.m以及(原文如此!)main.m文件。当然,我必须为obj-c创建桥接文件。它包含
#import "AppDelegate.h"我能够编译这个项目,但当我尝试添加新文件时,Xcode提供了添加Objective-C文件的功能。但最初该项目是作为Swift项目创建的。
我为Obj-C项目做了类似的操作。我删除了AppDelegate.h和.m文件以及main.m,并添加了AppDelegate.swift。我被要求创建桥文件,并做了空文件。接下来,我转到«Build Settings»并将Define Module参数切换为YES值。(如果没有这个,我就会得到链接器错误)。
在此之后,我能够构建并运行这个最初的obj-c项目,该项目现在在Swift中具有AppDelegate。当我试图添加一个新文件时,Xcode也允许我添加新的Obj-C文件。所以。看起来你不能根据Xcode中的参数来检测初始语言,因为项目总是可以纠正的。我认为开发人员很少会尝试在项目中替换AppDelegate并添加\删除主要入口点。希望这对你有帮助。
https://stackoverflow.com/questions/50926803
复制相似问题