요즘 아이폰앱때문에 오브젝티브C쓰시는분이 좀 있는것같은데 제가 좀 전에 겪었던 황당한 경험을 써볼까 합니다 ㅋ (얼마나 많은분이 이해하실지는 좀 걱정되지만...)
오브젝티브C의 큰 특징은 '메소드콜'이 아니라 '메시지전달'(이라고 표현하는게 맞나요?)
대략 게시판 어플같은걸 만들고 있었습니다. 처음에 로그인을하면 그 사람의 uid를 서버에서 받아와서 이후 하위 메뉴로 이동할때마다 전달.. 뭐 그런 디자인이었습니다.
그런데 여기서, 변수를 NSInteger로 전달해놓고 내부에서는 int로 받았습니다.
자, 일반적인 c였으면 주소값이 int변수에 저장되면서 머리아픈일이 일어났겠죠 근데 이놈은 그렇지 않았습니다. int형으로 받아서 intValue 를 호출해주니까...(아니 전달을 해주니까) 제대로된 숫자가 튀어나오는겁니다 ㅡㅡ;
결국에 NSNumber userid 를 전달해줬더니 int uid 가 이놈을 받았고 --> uid = &(NSNumber userid) 거기에 메시지를 보냈더니 --> [uid intValue] 결국 그 주소값에 메시지호출이 되어서.... 제대로된 값을 나타내더라..라는...
뭐 결국 c에서도 종종 비슷한 일이 일어나는것같긴 하지만 그러면서 이정도로 아무이상없이 돌아가는건 처음보네요