Did the way how to globally import files change in

2019-01-25 11:39发布

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.

3条回答
疯言疯语
2楼-- · 2019-01-25 12:14

In Xcode 6 the project's .pch file not anymore generated automatically but if you want one then you can create a .pch file yourself. Do this as below;

Goto->File->New->File->(Under iOS)Other->PCH File->Next

After entering the name for the file and saving it, go to "Build Settings" and set the insert the value for "prefix header" as "YourProjectName/YourPCHFileName.pch". And if the "Precompile Prefix header" is set to "No" then change it to "Yes". Now you can put any file you want to import globally, but keeping everything here is not a good practice.

查看更多
够拽才男人
3楼-- · 2019-01-25 12:31

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.

查看更多
Melony?
4楼-- · 2019-01-25 12:32

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.

查看更多
登录 后发表回答