The following is my own guess and I have never seen any official documentation. A long time ago when I first came into contact with IOS, I thought about a problem, but I didn't want to understand it. I didn't find any problem when I got online with poor documents. Today, by accident, I expanded the framework imported in the project and found that the header file often contains a structure similar to this # import <QuartzCore/QuartzCore. h>, which is not unreasonable. In fact, it should be the specific path of the imported header file and the file name. As for the redundant Headers in the framework, they should come from the "New Group", that is, they should not actually exist in folders. Therefore, the header file uses # import <QuartzCore/QuartzCore. h> or # import <OpenGLES/ES1/gl. h> All are reasonable. This is my personal opinion. I hope you can give me some advice...