转载自:http://www.cocoachina.com/bbs/read.php?tid=115950


关于optimization level的问题。   

问:
写了个程序。但在release模式下真机测试 ,不能正常工作。例如界面从网络上获取的图片等等。 但当optimization level设置成NONE后所有问题都正常了。
发布到APPSTORE上的程序编译时必须设置optimization level为 [-Os] 吗?如果设置为NONE会不会不通过审核?
如果必须优化。我这个问题应该从什么方向去找问题呢。我现在没有头绪。

答:
Optimization Level 应该是编译器的优化程度。   
比较早期的时候,硬件资源是比较缺乏的。为了提高性能,开发编译器的大师们,都会对编译器(从c到汇编的编译过程)加上一定的优化策略。优化后的代码效率比较高,但是可读性比较差,且编译时间更长。 

优化是指编译器一级的措施,与机器指令比较接近,所以很可能会导致硬件不兼容,进而产生了你目前遇到的软件装不上的问题。 
他是编译器的行为,与你代码理论上不相关的。 苹果的检查应该是检查你的代码一级的规范程度,隐私侵权相关的问题。 应该是与编译的过程是无关的。请放心。 

Project -> Building Setting-> Optimization Level