2009-09-02 2 views
1

Я ищу стратегии и статьи по созданию кода углерода 64-бит.Стратегии портирования Углеродного кода в Какао

Углерод для 64-бит не существует и не существует. Это в значительной степени dead end.

Итак, чтобы принести приложения и комплекты Carbon в 64-разрядную часть их GUI, необходимо будет переписать в Cocoa и Objective-C, правильно?

Как я могу свести к минимуму усилие, которое я должен внести в переход? Как я могу свести к минимуму количество необходимого кода Objective-C?

ответ

3

Итак, чтобы принести приложения и инструментальные средства для углерода в 64-разрядную часть их GUI, необходимо будет переписать в Cocoa и Objective-C, правильно?

Yup.

Как я могу свести к минимуму усилия, которые я должен внести в переход? Как я могу свести к минимуму количество необходимого кода Objective-C?

  1. Изучите какао. Прочтите The Objective-C Programming Language и Cocoa Fundamentals Guide. Ознакомьтесь с MVC, KVC и Objective-C. Запишите ссылки Foundation и AppKit. Научитесь любить Interface Builder, потому что это ваш друг (moreso in Cocoa, чем когда-либо был в Carbon).
  2. Получите хорошее на какао. Прочитайте more Guides (если вы все еще на Leopard, используйте [1]). Напиши столько бесплатных приложений и даже реальных приложений, как вы можете уйти в любое время, которое у вас есть. Если вы можете, отдайте их под лицензией BSD и напишите повторно используемый исходный код и дайте это тоже. Люди найдут ошибки, а некоторые расскажут вам о них, а некоторые будут отправлять патчи. Получите возможность писать полное приложение с уровнем модели, не более двух контроллеров и, по крайней мере, один пользовательский вид или ячейку за день.
  3. Прочтите Carbon Porting Guide, затем переносите приложение.

Я сам пришел из Carbon. Это совсем другое - вы можете начать новый, игнорируя предыдущий опыт Carbon, и, возможно, вы не будете совершать некоторые из ранних ошибок, которые я сделал (например, пропустить слой модели).

Что касается вашего приложения, вам, вероятно, предстоит сделать много операций, так как Carbon не заставил вас поддерживать интерфейс и логику отдельно, как это делает Cocoa. Какао обеспечивает MVC; если вы не придерживаетесь этого, вы платите цену, заново изобретая колеса, делая и исправляя ошибки.

Это делает звук какао похожим на работу, но это не так. Портирование трудное (неизбежно), но в остальном, Cocoa - это совершенно противоположное: писать (и читать!) Приложение Cocoa много проще, чем писать (и читать) приложение Carbon. Как только портирование закончится, вы будете рады, что переключились.

Ой, и многие люди порекомендуют то, что один или оба из Cocoa Programming for Mac OS X by Aaron Hillegass и Programming in Objective-C 2.0 by Stephen Kochan. У меня есть первая книга, и я прочитал ее, но это было после того, как я уже изучил Какао, поэтому не могу порекомендовать ее; что это неплохо, и я не думаю, что ты поступил бы неправильно, чтобы прочитать его. Я даже не видел вторую книгу, поэтому я ничего не скажу о ее качестве.

[1]: file:///Developer/Documentation/DocSets/com.apple.ADC_Reference_Library.CoreReference.docset/Contents/Resources/Documents/documentation/Cocoa/index-date0.html (переполнение стека не позволит мне ссылку на файл: URL)

+0

Я на самом деле больше знакомы с какао, чем углерод, но я использую код/​​библиотеки (не написанные мной), что это сборка на углероде (FLTK, OpenCV, ...). Поэтому я не хочу тратить много времени на понимание Carbon. Я искал руководство по переносу на сайте Apple, но не смог найти его. «Руководство по переносу углерода», на которое вы ссылаетесь, - это перенос устаревших приложений с Mac OS 9 на Carbon, а не на Carbon to Cocoa. – f3lix

+0

О, хорошо. Ну, FLTK, вероятно, придется идти, если вы не хотите его порт (при условии, что это открытый исходный код). OpenCV, похоже, не основан на углероде, просто на основе C, поэтому он должен работать нормально. Вы называете это «Углеродным приложением», поэтому я предполагаю, что у вас уже есть реализация на основе Carbon, возможно, унаследованная от предыдущих разработчиков. Если вы хотите портировать существующий код, а не просто писать новое приложение с нуля, вам нужно будет понять, по крайней мере, базовый Carbon. Попробуйте начать работу с Carbon: http://developer.apple.com/legacy/mac/library/referencelibrary/GettingStarted/GS_Carbon/ –

Смежные вопросы