문제

나는 객관적인 C와 Cocoa를 배우고 있습니다. 힐 레드 책 그리고 목표 C ++를 사용하는 것이 더 좋을 수도 있습니다. Objective-C는 UI를 개발하기위한 명확한 선택처럼 보이지만 C ++ 배경이 매우 강하고 C ++의 응용 프로그램 백엔드를 개발하고 Objective-C ++를 사용하여 UI 통합을 수행하고 싶습니다. 그러나 Apple이 목표 C ++를 계속 발전시킬 것인지 아니면 막 다른 골목이 될 것인지 궁금합니다.

Objective-C ++를 사용하는 사람이 있습니까?

도움이 되었습니까?

해결책

면책 조항 : 나는 애플을 위해 일하거나 말하지 않기 때문에 이것은 내 의견이다.

나는 주요 개발자 상점에 대해서는 말할 수 없지만 소그룹에서는 C ++ 라이브러리를 통합하기 위해 대상 C ++를 사용했으며 C ++의 백엔드를 작성하기 위해 제안했습니다. @Alxp에서 언급 한 바와 같이, 언어 경계를 가로 지르는 예외 처리와 같은 것들은 고통 스럽지만 약간의 계획으로 인해 이러한 통증의 대부분은 피할 수 있습니다. 숙련 된 C ++ 개발자의 경우 이익은 고통의 가치가있을 수 있습니다.

지원 측면에서, 나는 당신이 현재 상태의 지원이 곧 사라지지 않을 것이라고 가정 할 수 있다고 생각합니다. 그것은 GCC 코드베이스의 일부이며 그 소리 도구 체인 (Apple의 다음 컴파일러 도구 체인)은 대물 렌즈 C ++를 완벽하게 지원합니다. 반면에, 애플은 예를 들어 애플이 통합을 계속 개발할 것이라는 공식적인 보증은 없다.

현재 프로젝트의 경우 Objective-C ++를 사용하면 이점을 제공하는 경우 기존 지원에 의존하는 것이 안전하며 사용해야합니다.

다른 팁

내가 OBJC ++를 사용한 유일한 시간은 포트 라이브러리를 사용하여 내 OBJC 코드에서 액세스 할 수 있도록하는 것이 었습니다. OBJC ++와 OBJC가 예외와 클래스 창조 및 파괴와 같은 것을 처리하는 방법 사이의 충돌로 인해 한 프로젝트에서 두 언어를 저글링하기에는 두통이 너무 많았습니다.

Cocoa / Java가 GCC의 일부이기 때문에 Cocoa / Java에서 일어난대로 지원이 곧 사라질 것이라고 생각하지 않으며 Objective-C ++가 Objective-C가 직선으로 컴파일 할 수있는 것과 같은 방식으로 직선 C ++로 컴파일한다는 사실은 C, 그러나 나는 여전히 Objective-C와 비교하여 소프트웨어를 구축하고 OS X 제공 프레임 워크를 편안하게 사용할 수있는 매우 유쾌한 환경을 찾지 못했습니다.

대상 C ++는 목표 C 인 한 유지 될 가능성이 높습니다. OBJ-C ++는 기본 목표입니다 그 소리, 결국 GCC를 Apple의 선호 컴파일러로 대체 할 것으로 예상됩니다. 탄소 적용이 코코아 프론트 엔드로 이동함에 따라 사용량이 증가 할 가능성이 높습니다.

물론 애플은 예측할 수 없기 때문에“가능성이 높아진다”라는 단어는 위에 두 번 나타납니다. :-)

Apple이 Apple이 Cocoa 및 Objective C ++를 업데이트함에 따라 Apple이 객관적인 C ++를 유지하기 위해 필요한 상당한 반복 노력을 보지 못하기 때문에 Apple은 객관적인 C ++를 계속 지원할 것이라고 생각합니다.

다른 날에 나는 Xcode의 Refactoring 지원을 사용하여 목표 C ++ 파일 내에있는 일부 Objective-C 코드를 리팩토링하려고 시도했을 때 놀랐습니다. 메뉴 항목이 활성화 되더라도 "refactor 객관적인 C ++ 코드를 리팩터 할 수 없습니다. Xcode는 C 및 Objective-C 코드 만 리팩토링 할 수 있습니다." 에러 메시지. 따라서 Objective-C ++의 편집은 계속해서 무기한으로 작동 할 것이지만 객관적인 C ++는 Xcode 내 2 등석 시민이 될 것으로 생각됩니다.

나는 모든 코드에서 그것을 꺼냈다. 없음 .mm 파일.

그러나 .M 파일과 대화하려면 .CPP 파일이 필요합니다. 솔루션은 혈액 뇌 장벽을 그대로 유지하는 .c/.h 파일입니다.

Objective-C가있는 C ++는 일반적으로 너무 많은 수하물입니다.

Objective-C는 실제로 C 언어로 객체를 모방하는 C 코드 일 뿐이며 여전히 Objective-C 헤더 파일을 포함한 C 컴파일러를 사용합니다. Objective-C ++를 사용하면 C ++가 C 코드를 실행하므로 C ++ 컴파일러를 사용하고 Objective-C 헤더를 C 코드로 포함시킵니다. Objective-C ++는 본질적으로 C, C ++ 및 Objective-C (실제로 C)입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top