2015-09-30 7 views
12

Dopo aver effettuato la ricerca globale e sostituire il funzionamento in Xcode aggiunge xcLanguageSpecificationIdentifier e lineEnding ad ogni voce del file manipolato in *.pbxproj file in forma di esempio:Per cosa è xcLanguageSpecificationIdentifier?

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

a:

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

di cosa si tratta per?

Migliora qualcosa come le prestazioni di ricerca?

Se sì, come posso generarlo per altri file senza eseguire operazioni di ricerca e sostituzione?

Se no, come posso impedire a Xcode di creare tali cose?

+0

Sta succedendo in progetti avviati dopo Xcode 7 o in Xcode 7 su progetti avviati prima di Xcode 7? O che ne dici di un singolo livello di file, i file creati su una versione precedente di Xcode o corrente? L'implicazione, ovviamente, è che per cose create su Xcode 7+, queste cose esistono già e Xcode le aggiunge solo ai file legacy, se necessario. – nhgrif

+0

No, ho visto questo comportamento da Xcode 6 e probabilmente anche Xcode 5 ma non lo ricordo molto bene – Tobol

+0

Esisteva in Xcode 5. Se è per la colorazione e il completamento delle parole chiave come spiegato nella risposta di @ DawnSong, allora probabilmente esisteva anche prima. Nel mio caso, la ricerca globale e la sostituzione (all'interno di blocchi di commenti) hanno aggiunto valori di 'xcode.lang.objcpp 'che per me non hanno senso. Qualcuno con più informazioni? – Jerry

risposta

2

Penso che xcLanguageSpecificationIdentifier sia solo un'indicazione temporanea da Xcode 6 con la ricezione di Swift; e puoi trovarlo nel tuo project.pbxproj se scrivi codice misto con Swift e objc.

Per esempio, avete ProfileVC.h e ProfileVC.m, quindi si elimina ProfileVC.h e rinominare ProfileVC.m a ProfileVC.swift (e riscrivere in Swift), nella vostra projectName.xcodeproject/project.pbxproj, qualche cambiamento linea dal

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

a

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

Tuttavia, in questa situazione, il codice in ProfileVC.swift sembra non colorato correttamente e il completamento del codice è interrotto. Elimina la parte xcLanguageSpecificationIdentifier = xcode.lang.objc; e tutto va abbastanza bene.