카테고리와 관련된 협약은 Apple 클래스를 확장 할 때 접두사를 포함하는 것입니다. 예를 들면 :카테고리 앞에 마술 단어를 붙이기위한 규칙은 무엇입니까?
[string XXDataUsingUTF8];
, init
set
,
은 내가 덜 명확하고있어 식별자가 copy
시작 때 규칙이 무엇인지입니다 (네, 그냥 갈 바보 같은 예입니다.). 또는 new
. 예를 들어
:
[request setHTTPBodyWithKeyValues: keyValues];
내 접두사를 추가하는 경우, 이것은 더 이상 규칙 "세터가 세트로 시작"다음 없습니다. 내가 설정 한 후 접두사를 추가하면 다른 한편으로
[request XXSetHTTPBodyWithKeyValues: keyValues];
는 정말 더 이상 접두사 없습니다 :
[request setXXHTTPBodyWithKeyValues: keyValues];
이 몹시 set
으로 가져올 수 없습니다,하지만 난 그게 더하게 생각 init
, copy
등과 같이 중요합니다.
Apple이 어디에서 문서화 했습니까? 공통적으로 사용되는 것은 무엇입니까?
나는 여기에 대한 공식 지침을 볼 수 있지만, ARC 또는 LLVM 정적 분석기, 또는 기타 혼동하지의 이익에없는 것 도구 또는 코드를 읽는 사람이라면 선택기 시작 부분에 기존 접두사를 그대로 유지할 수 있습니다. 개인적으로, 나는 "진짜"메소드가 하나도 포함하지 않으므로 카테고리 확장 메소드 이름에서 밑줄을 사용하여 "접두어"의 고유성을 보존합니다. 당신의 예제에서는'setXX_HTTPBodyWithKeyValues :'가 될 것입니다. 컨벤션을 기반으로하지 않는 확장 메소드에서는 'XX_myMethodName'이됩니다. – pmdj
이것이 실제로 유일한 * 실용적인 대답이라고 생각합니다. 그렇지 않습니까? 명백한 지적 주셔서 감사합니다. :) –
매우 흥미로운 요점! 어떤 사람들은 자신의 "네임 스페이스"문자열을 접미사로 쓰는 것을 선호합니다 :'setHTTPBodyWithKeyValues_XX :'어떤 것이 더 예쁘지는 않습니다. –