В целом большинство «базовых» фреймворков присутствует и на Mac. Как правило, на рабочем столе будет присутствовать любой класс, запускающий NS - NSString, NSArray, NSObject и т. Д. Это, надеюсь, означает, что весь код вашего движка просто перекомпилируется и запускается.
То же самое относится и к некоторому промежуточному программному обеспечению - будет представлен весь iPhone Quartz - классы и типы, начинающие CG ... Если вы используете 3D, на рабочем столе есть OpenGL, но он полностью OpenGL, а не iPhone OpenGL ES. Есть некоторые различия, но ваш код будет довольно легко портировать.
Там, где вам определенно нужно будет перекодировать, это пользовательский интерфейс. Не только потому, что AppKit отсутствует, но и потому, что дизайн пользовательского интерфейса, который вам нужен для iPhone, обычно не будет работать на рабочем столе. IPhone поддерживает мультитач и не имеет (значимых) перекрывающихся окон. Точно так же, если вы используете какое-либо аппаратное обеспечение iPhone, вам придется переопределить его - акселерометр и GPS, очевидно, недоступны на рабочем столе. В обоих случаях эмпирическое правило заключается в том, что классы, начинающие пользовательский интерфейс ... являются специфическими для iPhone.
Если вы будете следовать рекомендациям Apple по разработке MVC при написании приложения, if будет сохранять код, связанный с пользовательским интерфейсом, хорошо отделенным от кода движка, и перенос будет проще.