2012-05-01 1 views
1

.NET에서 컴파일하면 디 컴파일이 가능하고 Reflector과 같은 프로그램을 사용하여 소스 코드를 볼 수 있습니다.MonoTouch to objective C

나는 Objective C의 기본 내용을 알고 있으며 MonoTouch보다 Objective C를 사용하려고합니다. 내가 시도

UdpClient client = new UdpClient("192.168.0.120",5050); 
client.Send(new byte[]{0,1,2,3,4},5); 

하루에 두 줄의 코드를 할 : 나는 예를 들어 목적 C.

와 함께 할 방법을 모르는 몇 가지가 있기 때문에 내가 MonoTouch를 사용하는 이유는 목표 C와 나는 할 수 없었다. 어쨌든, 학습의 목적을 위해 Reflector처럼 MonoTouch를 Objective C로 전환 할 수 있는지 궁금합니다.

+0

UdpClient가 .NET 클래스 인 경우 BSD Sockets API를 살펴보고 C에서 수행해야합니다. 불행히도 objective-c가 아닙니다. –

+1

CFSocket 객체는 편리한 사용을 위해 BSD 소켓 API를 래핑합니다. https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html –

+0

"리플렉터와 마찬가지로 목표물로 모노 터치를 전환하십시오."... 리플렉터는 그런 일을하지 않습니다. – borrrden

답변

1

반사판 (및 이와 유사한 도구) 컴파일 된 코드 (즉, 어셈블리)의 IL를 읽는 방식으로 작동합니다. 그런 다음 그들은 디 컴파일이 IL을 높은 수준으로 . NET 언어로 제공합니다.

이것은 생성 된 코드가 종종 원래 소스 코드와 비슷하게 보이기 때문에 유용 할 수 있습니다. 일리노이, 메타 데이터 또는 디버깅 기호)를 사용하면 훌륭한 학습 도구가 될 수 있습니다.

Objective C는 .NET 언어가 아니기 때문에 (.NET 사용자는 AFAIK를 만들지 않았습니다.) 귀하의 경우에는 작동하지 않습니다. 이론에서 그러한 도구는 의 비 .NET 언어에 대해 표시 할 수 있지만 실제로는별로 도움이되지 않습니다.

왜? 결과 소스 코드는 실행 코드로 다시 컴파일되지 않습니다. 기본 클래스 librairies (.NET BCL)에 대한 모든 호출은 Objective C 컴파일러에서 찾을 수 없습니다. Apple에서 제공하는 BCL 및 다른 프레임 워크 (iOS 및 OSX 용)는 매우 다르므로 (예 : UdpClient 샘플 코드) iOS 개발을 배우는 데 도움이되지 않습니다.

참고 : MonoTouch는 C# (또는 .NET)을 Objective C 코드로 변환하지 않습니다. JIT (시뮬레이터) 또는 AOT (장치) 컴파일러는 고유 (i386 또는 armv6/7) 어셈블리 코드를 직접 방출합니다.

1

MonoTouch C#을 Obj-C로 변환하는 데 대해 알고있는 도구가 없습니다.

다양한 MT C# 클래스와 메소드를 Obj-C와 매핑하는 MT Rosetta Stone을보고 싶을 수도 있습니다.