我即将创建一个Cocoa应用程序,我想确保有一天我可以轻松地将它移植到iPad甚至iPhone上.我怎样才能提前做好计划?
我知道我将不得不重做所有NIB,并可能设计一个不同的工作流程.
但是代码怎么样?用UIsomething替换每个NSsomething都不会削减它,对吧?关于如何确保我以后不会在脚下开枪的任何提示?
谢谢!
(iPad-SDK是在NDA下.为了这个问题,我假设我问过iPhone,好吗?或者想用更大屏幕的iPhone.)
确保您严格遵守应用中的模型 - 视图 - 控制器分离.特别是模型不应该依赖于任何控制器或视图.
在移植到iPhone/iPod touch/iPad时,您需要更换大部分或全部控制器以及所有NSView和NSCell.如果有的话,您应该能够保留CALayer子类.如果大多数控制器都可以在两个控制器上工作,但是某些部件只能在Mac上运行或者在两者上工作但具有完全不同的API,则可以重复使用带有条件编译的一个或两个控制器.而且你应该能够保持整个模型不变.
iPhone开发人员可能会提醒您一些更具体的陷阱,但这是适用于从一个环境到另一个环境的任何过渡的一般规则.(另一个环境转换的示例是为您的应用程序创建一个或多个命令行工具等价物或补充,如xcodebuild,packagemaker或ibtool.)
另外,请参阅"基金会简介"框架参考,了解哪些基础类仅适用于Mac和iPhone.