Подтвердить что ты не робот

Для чего нужен xcLanguageSpecificationIdentifier?

После выполнения глобального поиска и замены в 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 создавать такие вещи?

4b9b3361

Ответ 1

Я думаю, что xcLanguageSpecificationIdentifier - это всего лишь временная индикация из Xcode 6 с Swift; и вы можете найти его в своем project.pbxproj, если вы напишете код смеси с Swift и objc.

Например, у вас есть 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;, и все идет хорошо.