检测Xcode项目开发语言

时间:2018-06-19 11:00:52

标签: objective-c swift xcode

我们可以使用Objective-C或Swift创建一个新的Xcode项目。

我想检测创建项目时选择了哪种语言?

项目可以是Objective-C和Swift的混合,但我关注在项目创建过程中选择的语言。

可能是通过pbxproj文件或其他更好的方式。

感谢。

1 个答案:

答案 0 :(得分:2)

ObjC项目始终包含作为主要功能的入口点。 通常它在main.m文件中,但这不是必需的。开发人员可以将其替换为任何名称。 我尝试了2个简单的项目。一个在ObjC中,第二个在Swift中。 当我尝试添加新文件时,Xcode为Swift项目提供了Swift语言,为Obj-C项目提供了Obj-C语言。 接下来,我在Swift项目中删除了AppDelegate.swift文件,并添加了AppDelegate.h和AppDelegate.m以及(sic!)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并添加\删除主入口点。 希望对您有帮助。