2010-11-28 5 views
1

다음 코드를 작성하지만 컴파일러가 경고 또는 오류를 표시하지 않는 이유는 무엇입니까? getActiveComputer 기능const 함수의 반환 값

const computer* const activeComputer = [self.setting getActiveComputer]; 
activeComputer.name = [service name]; 
activeComputer.ipAddr = ipAddress; 

선언 대물-C에서

- (const computer* const) getActiveComputer 
+0

'컴퓨터'는 '구조체'또는 객체입니까? 그것은 차이를 만든다. – jer

답변

4

점 표기법은 객체를 호출 짧은 손되고/설정 메소드 터링. 당신이 가진 것은 다음과 같을 것입니다 :

메소드 호출은 const 선언에 위배되지 않으므로 경고가 없다고 생각합니다.

+0

안녕하세요, 당신이 나를 오해하는 것, complider 내 코드에 대한 몇 가지 경고 및 오류를 제공해야하지만, 컴파일러는 실제로 어떤 오류 또는 경고를주지 않는다, 나는 왜 안 알아야. – user497032

+0

Objective-C는'const' 객체를 지원하지 않으며 @darren이 제공 한 설명이 정확합니다. 컴파일러는 메소드가'const' 객체에서 사용될 수 있거나 사용 될 수 없다는 것을 알 수있는 방법이없고, 표시 할 수있는 방법이 없습니다. Apple은 'NSArray' 및'NSMutableArray'와 같이 변경 가능한 하위 클래스를 사용하여이 문제를 해결합니다. –

+0

처음에는 소문자로 클래스 이름을 사용하는 것이 혼란 스럽습니다 .... – bbum