2011-04-12 6 views
8

, 구글은Objective-C에서 iVars의 이름을 지정할 때 Google에서 후행 밑줄을 사용하도록 제안하는 이유는 무엇입니까? 구글의 <a href="http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml" rel="noreferrer">Objective-C Style guide</a> 많은 사람들에 의해 수행되는

클래스 멤버 변수 이

이유를 강조 후행 밝혔습니다? 이 일을 할만한 이유가 있습니까? 나는 밑줄을 시작할 때 사과가 대개 ivar이라는 이름을 붙인 것을 발견했다.

+0

가능한 이유 중 하나는 인스턴스 변수 이름이 Apple의 이름과 충돌하지 않는다는 것입니다. 컴파일러가이 경우 오류를 발생시키고 리팩터링 도구가 인스턴스 변수의 이름을 쉽게 바꿀 수 있으므로 문제가 많이 발생하지 않습니다. –

+0

+1 Google에 Objective-C 스타일 가이드가 있다는 것을 몰랐기 때문에 +1. –

답변

5

코어 데이터를 많이 사용하는 사용자는 코어 데이터 속성이 알파가 아닌 문자로 시작할 수 없음을 알게됩니다. 앱과 다양한 프로젝트에서 지속적으로 ivars를 이름 짓기를 원한다면, ivars 앞에 밑줄을 붙이는 대신에 덧붙이는 또 다른 이유입니다.

코어 데이터를 많이 사용하지 않거나 명명 규칙의 일관성을 유지하기 위해 OCD 경향이없는 경우 가장 적합한 방법은 아마도 정답 일 수 있습니다.

0

단순히 선호하는 스타일입니다. 접두사 또는 접미사가 붙은 밑줄은 개인용 ivar이며 속성 또는 공용 ivar가 아니라는 것을 나타냅니다.

int test_; 

나는 't'를 입력 할 수 있으며 즉시 코드 완성에 나타납니다 :

25

가 나는 경우 때문에 후행가 강조 선호합니다.

int _test; 

나는 T의 코드 완성에 도착하는 '_t'를 입력해야합니다.

사실이든 아니든간에 확실하지는 않지만 그게 내가 확신 한 것입니다.

+0

+1 : 좋은 답변입니다. 이것을 생각하지 않았습니다. – FreeAsInBeer

+0

+1 : 나는 그 같은 이유로 밑줄을 덧붙입니다. –

+9

첫 번째 문자로 밑줄을 붙인 것을 좋아합니다. "_"를 입력하고 모든 개인 변수에 대한 완료 목록을 얻을 수 있습니다. – drewag

2

이것은 C++ style guide에서 이월 될 수 있습니다. C++에서 맨 밑줄은 reserved입니다.

objective-c ivars의 명명 규칙은 C++ 개인 멤버 변수와 일치합니다.