在Xcode中进行全局搜索和替换操作后,它会将xcLanguageSpecificationIdentifier
和lineEnding
添加到*.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创建这样的东西?
答案 0 :(得分:2)
我认为xcLanguageSpecificationIdentifier
只是来自Xcode 6和Swift的临时指示;如果你用Swift和objc编写混合代码,你可以在project.pbxproj
中找到它。
例如,您有ProfileVC.h
和ProfileVC.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; ,一切都很顺利。