2012-05-03 3 views
2

은 내가 예를 들어, .H 파일에 하나의 인수 이름으로 함수를 정의하면 ...함수를 정의 할 때 인수의 이름이 중요합니까?

-(foo *) initWithId:(NSString *)id; 

상관 그리고 그것은 클래스 속성을 숨 깁니다 때문에 다음 내 구현의 인수에 다른 이름을 지정 하는가 :

-(foo *) initWithID:(NSString *)idString; 

나는 자동 완성 파일들이 자동 완성 필러에 대한 '기초'로 .H 사용하는 것을 알고, 그것이이 시나리오에 적용되지 않습니다 때, 난으로 남아 내 기능에 속성 이름을 사용하는 것을 선호 가능한 한 제 코딩 스타일에 일관성이 있습니다. getFoo와 setFoo가 모두 - (bar *) initWithFoo : (id) foo;와 동일한 'foo'속성에 적용된다는 것을 이해하는 것이 더 합리적입니다.

내가 알 수있는 한 컴파일러에는 문제가 없지만 어떻게 든 문제가되는 것처럼 보입니다.

+1

매개 변수'id'를 호출하는 것이 합법적이지만,'id'가 이미 Objective-C에서 유형이라는 점을 감안할 때 매우주의해야합니다. – mttrb

답변

5

Xcode의 LLVM 분석기는 newcopy으로 시작하는 메소드와 같은 몇 가지 사항을 고려합니다.

합니다 (@property이 있었다 "재산권의 합성 게터 코코아 객체를 '소유'복귀 에 대한 명명 규칙을 다음과"나는 new로 시작하는 속성을 이름을 지정할 때 다음

은 샘플 경고입니다 new로 시작하는 getter 메소드를 생성 한 @synthesize).

3

아니요, 컴파일러는 상관하지 않습니다. 코드를 읽는 다른 사람들이주의를 기울일 수도 있습니다.

1

실제로 중요한 것은 인스턴스 변수 이름에 같은 이름이있는 경우입니다.

@synthesize something; 

- (void)methodForSomething:(id)something 
{ 

something = something; 

} 

이렇게하면 오류가 발생합니다. 분명히 해결책은 인스턴스 변수 이름 지정을 수정하는 것입니다.

@synthesize something = _something; 

기타 매개 변수 이름은 중요하지 않습니다.

관련 문제