Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Did the way how to globally import files change in Xcode 6 / iOS 8?

I used to do my global imports (i.e. imports that would be visible to all source files in my Xcode project) in the file AppName-prefix.pch.

However, now in an Xcode 6 (and iOS 8) environment, after having created a new project, this file is not automatically generated any more.

My question is how to properly do global imports in Xcode 6? Can I just create my own AppName-prefix.pch and use this one eventually?

Note: When using Cocoapods, a file called Pods-AppName-Bolts-prefix.pch is generated. But global imports won't be working with this one.

like image 429
nburk Avatar asked Nov 20 '14 07:11

nburk


2 Answers

Apple finally understood that having global dependency is a Very Very bad practice. Ideally you need to stop using PCH files, because it makes other files very messy, and breaks code reusing.

Anyway, here is solution

  1. Add new PCH file to the project - New file > Other > PCH file

  2. At the project 'Build Settings' option - set the value of 'Prefix Header' to your PCH file name, with the project name as prefix - i.e. for project named 'TestProject' and PCH file named 'MyPrefixHeaderFile', add the value 'TestProject/MyPrefixHeaderFile.pch' to the plist.

like image 104
l0gg3r Avatar answered Nov 15 '22 20:11

l0gg3r


You can creTe your own, but the point really is that you shouldn't have global dependencies, you should explicitly import only what is required into each class. Indeed, in your .h files you should endeavour to use @class for everything and only import into your .m file. This approach makes the dependencies of a class very clear and reduces the likelihood of dependency circularities, which are both very good things.

like image 43
Wain Avatar answered Nov 15 '22 20:11

Wain