2009-05-05 6 views

답변

21

Objective-c가 그 차이를 나타냅니다. 메시지 을 개체에 보내야하지만 언제든지 사용할 수 있습니다.

messages

:

목표 - C 메시지는 객체로 전송 될 수 있으며, 메시징 시스템은 클래스의 메서드 호출을 할 수있는 방법 입니다.

예 :

// a class interface definition 
// including a method named aMethod 
@interface ANObject 
{ 

} 
- (void)aMethod; 
@end 


// a message sent to that object: 
ANObject * myObject = [[ANObject alloc] init]; 
[myObject aMethod]; // <-- message 
[myObject release]; 

기능 :

오브젝티브 C는 C 스타일의 함수 호출이 지원되도록, C 언어의 모든 상속, 심지어 상황이 그들에게 요구할 때 격려했다. Objective-C 객체는 단순히 포인터처럼 전달되기 때문에 인수로 함수에 전달할 수 있습니다. 함수에 대한 포인터를 전달하는 것에 대한 일반적인주의와 규칙은 물론 존중되어야합니다.

예 :

// a regular C-style function 
void someFunction(ANObject * argument) 
{ 
    // do something here... 
} 


// and how to call it: 
someFunction(someObject); 

각을 할 때 사용하는?

개체/클래스의 일부 속성에 액세스하려면 메시지/방법 을 사용하십시오.

[myAccount withdrawMoneyAndDriveToMexico]; 

사용 C : 일부 작업을 수행 할

[myObject setHidden:YES]; 

또는 객체를 말하는 : 속성의 값을 설정

int stringLength = [myString length]; 

: 좋은 예는있는 NSString의 길이에 액세스 할 것 스타일 클래스에 속하지 않는 작업을 수행하려는 경우; 혼자 서 있어야하는 것. 좋은 예는 다음과 같은 수학 함수가 될 것입니다 :

double degrees = ConvertRadiansToDegrees(radians); 
+0

내 게시물을 보내 주셔서 감사합니다. – Jake

4

기본적으로 Objective C 구성 요소를 다루는 동안 메시지를 사용하십시오. NS * 유형을 사용할 때 언제나 더 많거나 적은.

어떤 경우에도 기본적으로 C 함수 호출을 사용하고 있습니다. Objective C의 원래 구현은 C에 대한 전처리 기가되었습니다. 그러나 Objective C를 사용하는 요점은 스몰 토크와 같은 구문을 얻는 것입니다.이 구문은 [] 내부에있는 것입니다.

2

많은 Java 관련 질문을 던졌습니다. 아마도 Java 비유가 도움이 될 것입니다.Java에서 메소드를 사용하는 곳에서는 Objective-C에서 메시지를 사용하십시오. Java에서 정적 메서드를 사용하는 곳에서는 Objective-C의 클래스 메서드를 사용합니다. 정적 방법으로 가득 찬 유틸리티 패키지를 Java로 작성하면 Objective-C의 함수로 이해할 수 있습니다.

물론, 이상한 Objective-C++ 작업을 수행하는 것이 맞을 수도 있습니다.