2011-11-04 2 views
1

가능한 중복 접근 : "인스턴스 방법>" "수"있는 NSArray에 대한 사과 문서는 말합니다에서
Style: Dot notation vs. message notation in Objective-C 2.0코드 스타일 : 속성으로

. 그래서 보통은 [[NSArray array] count]이라고 쓸 것입니다. 그러나 [NSArray array].count은 잘 작동합니다 ... 그리고 최근에 나는 UIScreen.mainScreen.bounds도 받아 들였습니다. mainScreenUIScreen의 클래스 메소드입니다.

누구나 어떤 스타일을 사용해야한다고 생각합니까? 의견을 부탁합니다.

+0

+1 좋은 질문이지만 실제로는 중복이기 때문에 투표를 끝내겠다고 투표했습니다. 더 중요한 것은 중복 된 Q의 대답이 훨씬 더 낫다는 것입니다. – Caleb

+0

@ 캐 일프, 네 말이 맞아. 그 질문은 첫 번째 근원이되어야합니다. –

답변

3

IMO, 도트 구문은 특정 수동성을 의미합니다. 그것을 사용하여 심각한 부작용이 없어야합니다. NSArray의 -count 메서드를 속성으로 처리하는 것이 좋을 수도 있지만 (실제로 NSArray가 만들어 질 때 속성이 언어의 일부 였을 수도 있지만) someMutableArray.removeLastObject은 내 감수성에 불쾌감을 줄 것이라고 말합니다. 아마도 잘 작동 할 것입니다.

점 표기법에 대해 알아 두어야 할 점은 Objective-C의 점 표기법을 과제의 왼쪽에있는 C의 점 표기법과 함께 사용할 수 없다는 것입니다. 즉,이 시도하지 않는 :

myView.bounds.origin.x = 50. 

당신은 대신 말을해야 : 대한

CGRect newBounds = myView.bounds; 
newBounds.origin.x = 50; 
myView.bounds = newBounds; 
3

도트 구문은 메소드를 호출 단지 문법 설탕입니다. 따라서 [NSArray array].count[[NSArray array] count]과 동일하고 UIScreen.mainScreen[UIScreen mainScreen]

과 동일합니다. 속성 액세스 이외의 다른 용도에는 절대 도트 구문을 사용하지 마십시오. 재산 접근을 위해, 선택은 개인적인 스타일의 문제입니다.

+2

속성으로 선언되지 않아도 속성처럼 작동하는 메서드에 도트 표기법을 사용하는 것이 좋습니다. NSArray의'count' 메소드는 좋은 예입니다. NSDictionary의'allKeys'와'allValues'는 두 가지 더 있습니다. – Caleb

+0

@ 캐 일프, 그 견해를 이해할 수 있습니다. 나는 공식 사과 지원 정책의 관점에서 말하고 있었다. 필자는 개인적으로 도트 구문을 사용하지 않기 때문에 실제로 문제가되지 않습니다. –

+1

나는이 질문에 대해 애플의 명확한 공식 성명을 알지 못한다. 너는 그걸 알고 있니? [Objective-C 프로그래밍 언어] (http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocObjectsClasses.html#//apple_ref/doc/uid/TP30001163- CH11-SW17) 도트 구문이 접근 자에 사용되지만 @property 구문을 사용하여 선언 된 속성으로 사용을 제한해야한다는 의미는 아닙니다. – Caleb

관련 문제