什么是xcLanguageSpecificationIdentifier?

时间:2015-09-30 12:40:23

标签: xcode

在Xcode中进行全局搜索和替换操作后,它会将xcLanguageSpecificationIdentifierlineEnding添加到*.pbxproj文件中的每个操作文件条目中,例如:

036B04CB1B2AE8A70010F649 /* MyClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyClass.m; sourceTree = "<group>"; };

为:

036B04CB1B2AE8A70010F649 /* MyClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = MyClass.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };

它的用途是什么?

它是否改善了搜索性能?

如果是,如何在不进行搜索和替换操作的情况下为其他文件生成它?

如果不是,我怎样才能防止Xcode创建这样的东西?

1 个答案:

答案 0 :(得分:2)

我认为xcLanguageSpecificationIdentifier只是来自Xcode 6和Swift的临时指示;如果你用Swift和objc编写混合代码,你可以在project.pbxproj中找到它。

例如,您有ProfileVC.hProfileVC.m,然后删除ProfileVC.h并将ProfileVC.m重命名为ProfileVC.swift(并在Swift中重写),您的projectName.xcodeproject/project.pbxproj,某些行更改

    49E89AB31C3D4494006C95BB /* ProfileVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProfileVC.m; sourceTree = "<group>";};

    49E89AB31C3D4494006C95BB /* ProfileVC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = ProfileVC.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };

但是,在这种情况下,ProfileVC.swift中的代码似乎没有正确着色,并且代码完成被破坏。我删除了部分 xcLanguageSpecificationIdentifier = xcode.lang.objc; ,一切都很顺利。