@interface AClass : SomeType {
@protected
NSMutableArray* amINotAlreadyProtected; //?
}
왜 @protected
이 @protected
이 기본값 인 경우이 코드가 필요합니까? 이 코드는 매우 숙련 된 프로그래머가 작성했지만 나 자신을 생략 할 것입니다.@protected가 기본값 인 경우 왜이 ivar에 @protected가 필요합니까?
@interface AClass : SomeType {
@protected
NSMutableArray* amINotAlreadyProtected; //?
}
왜 @protected
이 @protected
이 기본값 인 경우이 코드가 필요합니까? 이 코드는 매우 숙련 된 프로그래머가 작성했지만 나 자신을 생략 할 것입니다.@protected가 기본값 인 경우 왜이 ivar에 @protected가 필요합니까?
기본 동작은 @protected
이므로 필요 없음은 필요하지 않습니다.
그러나 일부 프로그래머는 경험이 부족한 프로그래머를 나중에 사용하는 경향이 있으며 나중에 알게됩니다. 또한 보호되고 다른 개인 또는 공개 변수가있는 경우 코드 가독성이 높아진다는 것을 언급 할 수 있습니다.
답해 주셔서 감사합니다 –
실제로 필요합니다. 또는이었다. – bbum
당신이 볼 수있는 경우 그것은 시대에서이다 :
기본이 @protected있는 동안 다른 변종 중 하나로 전환하고 싶었 더라면, 당신이 그것을 사용할 필요가있다@interface Foo:Bar
{
@private
… ivars …
@protected
… ivars …
}
…
@end
다시 스위치. 그리고 예, ivar 선언 순서가 릴리즈마다 유지되도록하는 이유 (종종 나쁜 것)가있었습니다.
그 외에도, 기본 대소 문자에 대한 키워드를 포함하면 페티 처 그레이 비어드 (나 자신과 같은)가 해당 선언에서 정확하게 명시 될 수 있습니다.
그러나 최근에 추가 된 @property
과 같은 헛소리는 더 이상 필요하지 않습니다.
감사합니다. 예, 스위치가'@ protected'로 되돌려지지 않는 한,'@ private' 키워드를 따르는 모든 변수는 private이 될 것이라는 것을 알기 때문에 여러분이 여기서 발견 한'@ protected '가 필요할 것입니다. 내가 물어 본 질문에는 그 이전에'@ private'이나'@ public'이 없었기 때문에 그렇지 않았습니다. –
현명한 회색 턱수염을 위해 .... – bbum
'@ public','@ protected','@ private'은 프로퍼티가 손으로 코딩 된 시대의 것들이며 ('@ property' 지시어가 없습니다), iVar 액세스는 거의 보편적이었습니다 당신은 일을 끝내야했습니다. 그들은 애플 프레임 워크의 일부가 여전히 그것을 사용하기 때문에 그것들을 비난하는 것을 결코 잊지 못한다. – CodaFi
@CodaFi OK. 정보 주셔서 감사합니다. –
@ JoshCaswell 약 25 년의 경험을 가진 프로그래머가 자신의 수업에서이를 작성했기 때문에. 나는 그것을 생략했을 것이다. –