2009-04-03 2 views

답변

14

나는 주위에 그것을 다른 방법을 넣어 것입니다 : 당신은

확인 무지 간단 :-) 뭔가를과 복잡함을 걸고 수 있습니다, 나는 조금 입심이되고 있어요. 다른 사람들이 지적한 것처럼 Objective-C는 C에 대한 최소한의 언어 확장 집합입니다. Objective-C 코드를 작성하면 실제로 C를 작성하고 있습니다. Objective-C 런타임 지원의 내부 매스 니스에도 액세스 할 수 있습니다 언어의 일부인 편리한 C 함수를 사용합니다 (아니요 ... 내가하는 일을 실제로 알지 않는 한 실제로하지 않는 것이 좋습니다.).

C 함수에 대한 콜백으로 Objective-C 인스턴스 메서드를 전달하려고 할 때만 경미한 시간을 보냈습니다. 예를 들어 콜백을 허용하는 함수가있는 순수 C 크로스 플랫폼 라이브러리를 사용하고 있습니다. 개체 인스턴스 내에서 함수를 호출하여 일부 데이터를 처리 한 다음 C 함수가 완료되면 내 인스턴스를 BACK으로 호출하거나 추가 입력 등 (C의 일반적인 패러다임)을 얻는 과정의 일부로 호출 할 수 있습니다. 이것은 펑키 함수 래핑 (wrapping)과 내가 본 몇몇 다른 창의적인 방법으로 수행 할 수 있습니다. 그리고 "objective-c method for C callback"을 검색해야 할 필요가있는 경우 또는 그런 것이 상품을 줄 것입니다.

다른 조언은 객체가 C 함수에서 사용하기 위해 만든 수동 메모리를 적절하게 관리하는지 확인하는 것입니다. 당신은 객관적인 c 클래스가 정말로, 그것이 완료되면, dealloc에 ​​대한 메모리를 정돈하기를 원할 것입니다.

그 외, C의 모든 참조를 삭제하고 재미있게 즐기십시오!

7

당신은 C와 목표 - C '믹스'를 할 수 없습니다 오브젝티브 C는 C.

의 상위 지금

, C입니다 ++와 Objective- 반면에 C ...

+0

어떻게 다시 질문해야합니까? – gargantuan

+0

다시 말하면 문제가되지 않습니다. Objective-C는 C를 모두 포함하므로 믹싱이 전혀 없습니다. –

+1

나는 당신을 얻는다. 그러나 나는 마음에 새겨 져있다. 어떤 맛이라도 C에 익숙하지 않고, Objective-C에서 코코아 학습을 배우고있다. 그러나 Chipmunk는 순수한 C 언어로 작성되었습니다. 그래서, 이미 Structs가 Object가 아닌 문제를 발견했습니다. – gargantuan

1

목표 C는 C의 상위 집합이므로 이 아니어야합니다.

을 제외하고, here 순수 C는 OO 프로그래밍을 처리하기 위해 다른 규칙 (분명히 내장 메커니즘이 없기 때문에)을 가지고 있습니다. C에서 객체는 단순히 함수 포인터를 가진 (struct *)입니다.