2013-11-14 1 views
-2

내가 다음 줄은 오브젝티브 C에 의미 하는가 정확히 알고 싶어 그래서 드라이버 개발에 안돼서Objective-C 코드에서 [self sendmsg : ...]의 의미는 무엇입니까?

[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES]; 
+5

그게 무슨 뜻인지 찌를 수 있어요 ... – Wain

+0

[Objective-C에서 메소드를 어떻게 호출 할 수 있습니까?] (http://stackoverflow.com/questions/591969/how-can- i-call-a-method-in-objective-c) – Amar

+0

기본적인 구문 질문은 책이나 튜토리얼에서 배워야하며 스택 오버플로에 대해서는 질문하지 않습니다. –

답변

2

그것은 두 문장

[self sendMsg:[NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer] :YES]; 
으로 나눌 수 있습니다 복합 명령문입니다

은 다음과 같이됩니다.

NSData *message = [NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer]; 
[self sendMsg:message :YES]; 

그러나이 코드에는 관례적인 문제가 있습니다. 메소드 이름이 인수와 함께 삽입 될 필요는 없지만 그렇게하는 것이 가장 좋습니다. ":"방법 선택 (서명)입니다 :

sendMsg:: 

그것은 더 나은 선언 할 것 같이

- (void)sendMsg:(NSData *)msg option:(BOOL)option; 

있을 것이다이 경우 이전의 마지막에있는 방법 이름 부분이 없다 선택 (서명) :

sendMsg:option: 

그 결과 호출은 더 이해할 수있는 것 같은 :

NSData *message = [NSData msgWithID:kReqConfiguration subID:0 dest:kAddrThisPanelServer]; 
[self sendMsg:message option:YES]; 

이는 동일한 클래스 인스턴스의 선택자 sendMsg:option:이있는 메서드가 messageYES 인수를 사용하여 호출 (메시지 전송)된다는 것을 의미합니다.

0

[self sendMsg]. 이것은 ios에서 메소드를 호출하는 방법입니다. 호출 할 메소드의 이름을 지정하는 sendMsg를 사용하고 self는 메소드를 호출하는 엔티티입니다.

+3

명확하게하기 : 방법을 호출하는 방법입니다.