나는 BigNerdRanch 'Objective-C Programming from Aaron Hillegass'의 책에서 Objc를 연구 중이며, 나를 혼란스럽게하는이 문제가있다.왜 포인터의 클래스를 정의해야합니까?
필자는 컴파일러가 내가 말하는 변수의 종류를 알아야하므로 값을 할당하기 전에 var 유형을 선언해야한다는 것을 알고 있습니다.
int myNum = 10;
좋아요. 그러나 ObjC 클래스에 관해서, 포인터가 _ 타입 바로 뒤에 선언해야한다면 포인터의 타입을 선언 할 이유가 무엇인지, 할당 할 때 그것을 초기화할까요?
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
분명히 * dateFormatter 객체는 NSDateFormatter의 속성이며, 할당에 써야합니다. 왜 제가 처음에 그것을 선언해야합니까? 유형의 표현 'NSTimeZone *'와 '*는 NSString를'초기화 호환되지 않는 포인터 타입 '원인은 내가 엑스 코드가 명확 저를 경고
NSString *timeZone = [NSTimeZone systemTimeZone];
처럼 뭔가를하려고하면'.
나는 뭔가를 놓치고있는 것처럼 느껴집니다. 그것이 바보 같은 질문이라면 배울려고 죄송합니다.
그냥 오브젝티브 C가 상속 C의 구문입니다. 걱정하지 마십시오. 중요하지 않습니다. –
@PaulR : 변수를 정적으로 입력하는 것보다 id를 선언하는 것이 중요한 이점입니다. 내 대답보기 : http://stackoverflow.com/a/19190202/30461 –