你可能已经预料到,构建iPhone应用程序与构建Macintosh应用程序类似,两个平台都运行OS X。需要使用Objective-C 2.0开发代码。通过链接到一个框架分类进行编译。换句话说,iPhone SDK是受限的。下面是需要记住的一些要点。 ·垃圾收集是MIA并且可能始终如此。在iPhone中,需要由你自己负责保留和释放内存中的对象。对于iPhone不提供垃圾收集,可以从两个方面解释。首先,像iPhone这样的受限移动平台要求精准的性能特征,特别是对于游戏之类的处理器密集型应用程序更是如此。垃圾收集给性能增加了不可预测的因素,它在清理内存时必须冻结线程。其次,有限的内存不允许以正常实用的方式实现垃圾收集。使用垃圾收集的应用程序要占用更多的内存。这使应用程序容易导致操作系统关机。 ·许多库只得到了部分实现。Core Animation只能通过Quartz Core框架得到部分利用,但许多类和方法实际仍然不可用。这是因为你使用的是早期发布的软件,即使这些软件的发布日期距第1版的SDK发布已有很长一段时间。绕过缺少的部分并确保将遇到的bug以记录形式提交给苹果公司,以便需要使用的部分能得到修复(我们希望如此)。需要注意,苹果公司故意限制了对某些专用类和方法的访问。例如,你可以从图像读取EXIF方向,但是不能添加那样的数据,实现该功能的方法没有发布。 说明 Xcode的编译器允许在同一个项目中混合C++和Objective-C代码。这样得到的Objective-C++混合项目使你可以重用Objective-C应用程序中已有的C++库。请参阅苹果公司提供的文档了解详细信息。