나는 언어 다양성을 추구하지만 Objective C는 제정신이 아닙니다. 그래서 궁금합니다. Cocoa API 등을 사용하는 동안 C ++로 iPhone 앱을 코딩 할 수 있습니까?
나는 언어 다양성을 추구하지만 Objective C는 제정신이 아닙니다. 그래서 궁금합니다. Cocoa API 등을 사용하는 동안 C ++로 iPhone 앱을 코딩 할 수 있습니까?
답변:
짧은 대답, 예, 일종의. Apple Developer Connection 에서 읽을 수있는 Objective-C ++를 사용할 수 있습니다 .
이미 C ++를 알고 있다면 Objective-C를 배우는 것은 매우 간단 할 것입니다. 이 주제에 대한 더 많은 정보는 ADC에도 있습니다.
Objective-C는 처음에는 실제로 "미친"것처럼 보이지만 계속 사용하는 것이 좋습니다. "a-ha"순간이 있으면 갑자기 모든 것이 이해되기 시작합니다. 나에게는 Cocoa 프레임 워크, 언어, 그리고 모든 것이 어떻게 조화를 이루는 지 이해하는 데 집중된 Objective-C 집중에 약 2 주가 걸렸습니다. 하지만 일단 정말 "얻었다"는 것은 매우 흥미로 웠습니다.
진부하게 들리지만 사실입니다. 튀어 나오십시오.
물론 C ++ 라이브러리 나 기존 C ++ 코드를 가져 오는 경우 해당 모듈을 Objective-C / Objective-C ++와 함께 사용할 수 있습니다.
Objective-C를 사용하여 UI를 함께칩니다.
그러나 코드의 어려운 부분은 여전히 C ++로 작성되었습니다.
이것이 Objective-C의 UI 인터페이스와 이벤트 처리의 주요 목적입니다.
그리고 그것은 그 목적을 위해 훌륭하게 작동합니다.
나는 여전히 코드의 백엔드로 C ++를 좋아한다 (하지만 주로 C ++를 좋아하기 때문이다). 애플리케이션의 백엔드에도 Objective-C를 아주 쉽게 사용할 수있다.
#include <XXX>
C / C ++ 파일처럼 일반을 사용할 수 있습니다 .
우선, Objective-C가 "미친다"라고 말하는 것은 유머러스합니다. Bjarne Stroustrup C ++ 책이 내 옆에 앉아 있으며 1020 페이지에 달합니다. Objective-C에 대한 Apple의 PDF는 141입니다.
UIKit을 사용하고 싶다면 C ++로 무엇이든하기가 매우 어려울 것입니다. Apple의 UI를 준수하는 진지한 iPhone 앱은 Objective-C로 작성하려면 UI 부분이 필요합니다. OpenGL 게임을 작성하는 경우에만 거의 전적으로 C / C ++에 충실 할 수 있습니다.
Cocoa API와 인터페이스하려면 Objective C를 사용해야하므로 선택의 여지가 없습니다. 물론 백그라운드에서 원하는만큼 C ++를 사용할 수 있습니다 (Objective C ++를 사용하면이 작업이 쉬워집니다).
정말 미친 언어이지만 조금 익숙해지면 사용하는 것도 재미 있습니다. :-)
C ++에 대해서는 잘 모르겠지만 MonoTouch 라는 제품을 사용하여 C #으로 iPhone 애플리케이션을 확실히 코딩 할 수 있습니다 .
MonoTouch 대 Obj-C : MonoTouch와 Objective-C 중에서 결정하는 방법 에 대한 자세한 논의는이 게시물을 참조하십시오 .
Java로 작성된 계산 집약적 인 Android 앱을 iOS6으로 이식하는 중입니다. 저는 UI가 아닌 부분을 Java에서 C ++로 이식하고, Obj-C로 (최소한) UI 부분을 작성하고, 표준 C / C ++ 기술을 사용하여 전자를 (작은) C 인터페이스로 래핑하여이를 수행하고 있습니다. 그것은 결국 C의 상위 집합 인 Obj-C에서 액세스 할 수 있습니다.
이것은 지금까지 효과적이었으며 어떤 문제도 발생하지 않았습니다. Xcode를 사용하면 Obj-C 클래스뿐만 아니라 C ++ 클래스도 만들 수 있고 일부 공식 샘플 코드는 이러한 방식으로 작업을 수행하므로 합법적 인 접근 방식 인 것 같습니다. 이 작업을 수행하기 위해 공식적으로 지원되는 인터페이스를 벗어날 필요가 없었습니다.
Xcode의 인터페이스 빌더가 제공하는 도움을 고려할 때 가능하더라도 C ++로 남은 UI 코드를 작성하여 얻을 수있는 것이 많지 않은 것 같으므로 제 대답은 C ++를 사용할 수 있다는 것입니다 거의 모든 앱 또는 적절하고 편리하다고 생각되는만큼의 앱입니다.
예,하지만 아주 간단한 프로그램을 작성하지 않는 한 모든 종류의 프로그램을 단일 언어로 프로그래밍 할 수 있다고 생각하는 것은 잘못된 생각입니다. Objective C는 Cocoa를위한 것입니다. C #은 .NET 용이므로 올바른 작업에 적합한 도구를 사용합니다. 브리징 코드를 작성하고 C ++ 코드가 Cocoa 요구 사항에 따라 작동하도록 시도하는 것은 C ++를 기대하지 않는 좋은 생각이 아닙니다. Objective C의 성능은 다음과 같습니다. 기존 기술을 고려하여 앱의 레이아웃 디자인과 아키텍처를 확인하고 어떤 부분을 어떤 언어로 작성해야하는지 결정한 다음 그에 따라 빌드해야합니다.
저는 현재 Objective-X라는 Objective-C ++ 프레임 워크를 작성 중입니다. 따라서 PURE C ++ iPHONE 프로그래밍이 가능합니다. 다음과 같이 할 수 있습니다.
#import "ObjectiveX.h"
void GUIApplicationMain() {
GUIAlert Alert;
GUILabel Label;
GUIScreen MainScreen;
Alert.set_text(@"Just a lovely alert box!");
Alert.set_title(@"Hello!");
Alert.set_button(@"Okay");
Alert.show();
Label.set_text(@"Ciao!");
Label.set_position(100, 200, 120, 40);
MainScreen.init();
MainScreen.addGUIControl(Label.init());
}
GCC의 적절한 명령 줄 옵션을 사용하여 컴파일합니다. 나는 이미이 helloworld app & it w0rkX0rz를 매력처럼 컴파일했습니다. ;-) 곧 GoogleCode에서 사용할 수 있습니다. Objective-X를 검색하거나 http://infotronix.orgfree.com/objectivex를 방문하십시오. . 일주일 후!
업데이트 (비활성) URL : http://code.google.com/p/objectivex/