나는 (예를 들어) 내용의 유효성을 검사하는 기능을 만들고 있는데, 유효하다면보기를 닫고 그렇지 않다면 사용자에게 추가 지시 사항을 제시한다. (또는 다른 그런 행동.) 내가 이름을 짓기 위해 갈 때, 나는 그것을 -doneButtonPressed
또는 -validateViewRepairAndClose
이라고해야하는지 궁금해한다. UI 액션이 호출 한 후에 메소드의 이름을 지정하는 것이 좋을까요, 아니면 메소드의 이름을 따서 이름을 짓는 것이 낫겠습니까? 때로는 단순한 것 같아요. -save
과 같은 것들은 꽤 명확하고, 다른 시간대에는 명확한 예가 될 수 없지만, 어떤 사람들은 그들이하는 일을 이름 짓는 것처럼 보였습니다. 너무 길고 혼란스럽게 보입니다. 더 나은 것을 그냥 xButtonPressed
여기서 x는 버튼의 단어입니다.IBActions에서 호출 할 메서드를 명명하는 좋은 방법은 무엇입니까?
답변
큰 문제입니다! 나는 이것에 대하여 잠을 잃었다.
순전히 FWIW ... 내 투표는 "theSaveButton" "theButtonAtTheTopRight" "userClickedTheLaunchButton" "doubleClickedOnTheRedBox"등입니다.
일반적으로 모든 루틴의 이름을 그렇게 지정합니다. 그러나 종종 나는 단지 다른 프로그램 인 "launchTheRocket" "saveAFile"등등으로 곧바로 가게 할 것입니다.
이 방법이 유용 했습니까? 왜냐하면 종종 로켓을 직접 발사하기를 원하기 때문입니다.이 경우 로켓트 로켓트를 호출하면 사용자가 로켓을 발사하는 버튼을 누르는 대신 대처할 수 있습니다. 로켓을 직접 실행하고 userClickedTheLaunchButton을 호출하면 코드가 옳지 않아 코드가 더 혼란스럽게 보입니다. (화면에서 언론을 구체적으로 시뮬레이션하려고합니까?) 디버깅 등은 분리되어있을 때 훨씬 쉽기 때문에 누가 무엇을 호출했는지 알 수 있습니다.
예를 들어 통계를 수집하는 데 약간 유용합니다. 사용자는 198 번 로켓 발사를 요청했으며, 전반적으로 로켓을 273 번 발사했습니다.
더 나아가 - 이것은 발사 로켓 메시지를 사용하여 로켓을 시작하는 코드의 다른 부분에서 발생하는 클린 처라고 할 수 있습니다. 버튼을 사용하는 것보다 실제로 그렇게하는 것이 훨씬 더 명확합니다. 반대로 userClickedTheLaunchButton 개념은 시간이 지남에 따라 바뀔 수 있습니다. 일반적으로 로켓을 시작하지만 때로는 메시지를 표시하거나 사람을 알 수도 있습니다.
사실, 버튼을 클릭하면 부수적 인 물건 (예 : 애니메이션 등)이 실행될 수 있으며 'clickedTheButton'내부에서이를 수행 할 수있는 완벽한 장소가 될뿐만 아니라 거친 기능인 'launchTheRocket'을 호출합니다.
그래서 저는 실제로 별도의 "userDidThis"기능을 갖는 세 번째 훨씬 더 우스꽝스럽게 복잡한 솔루션을 옹호하고 별도의 "startANewGame"기능을가집니다. 그것이 일반적으로 전자가 거의 아무것도하지 않더라도, 단지 후자를 부르는 것을 의미합니다!
BTW 다른 명명 옵션이 결합 될 두 ... "topButtonLaunchesRockets" "등 glowingCubeConnectsSocialWeb"마지막으로
! 일반적으로 행동으로 간주하여 모든 것을 형식적으로 변경한다는 것을 잊지 마십시오.
[theYellowButton addTarget:.. action:@selector(launchRockets) ..];
[theGreenButton addTarget:.. action:@selector(cleanUpSequence) ..];
[thatAnimatingButtonSallyBuiltForUs addTarget:.. action:@selector(resetAll) ..];
[redGlowingArea addTarget:.. action:@selector(tryGetRatingOnAppStore) ..];
아마 이것이 문서 적으로 현명한 방법입니다. 이것은 지금까지 최고의 질문 중 하나입니다, 감사합니다!
xButtonPressed : 또는 handleXTap : 줄을 따라 무언가를 처리 한 다음 처리기 내에서 다른 메서드를 호출 할 수도 있습니다.
- (IBAction)handleDoneTap:(id)sender {
[self closeView];
}
- (void)closeView {
if ([self validate]) {
// save and close
}
else {
// display error information
}
}
- 1. CQRS 아키텍처에서 모델 테이블 읽기를 명명하는 가장 좋은 방법은 무엇입니까?
- 2. objective-c에서 initializer 메서드를 명명하는 규칙이 있습니까?
- 3. 개인 메서드를 호출 할 수있는 이유는 무엇입니까?
- 4. 비동기 방식으로 정상적인 메서드를 호출하는 가장 좋은 방법은 무엇입니까?
- 5. 함수를 호출 할 때이 스레드를 종료하는 가장 좋은 방법은 무엇입니까?
- 6. 변수를 사용하여 메서드를 호출 할 수 있습니까?
- 7. JQuery에서 페이지 메서드를 호출 할 수 없습니까?
- 8. UIResponderStandardEditActions에서 select 메서드를 호출 할 수 있습니까?
- 9. Hibernate/Spring Roo가 테이블/컬럼을 명명하는 방법을 변경하는 방법은 무엇입니까?
- 10. 동일한 WCF 서비스에서 여러 버전의 ServiceContracts를 명명하는 방법은 무엇입니까?
- 11. 다른 객체의 두 메서드를 연결하는 가장 좋은 방법은 무엇입니까?
- 12. DataGridView.CurrentCellDirtyStateChanged 메서드를 호출 할 때 InvalidProgramException이 throw됩니다.
- 13. Ajax Javascript 메서드를 호출 할 수 없습니다.
- 14. webservice에서 메서드를 호출 할 때 문제가 발생했습니다.
- 15. Segfault 메서드를 호출 할 때 C++
- 16. 컨트롤러에서 Daemon 메서드를 호출 할 수 있습니까?
- 17. 사용자 정의 메서드를 호출 할 수 없습니다.
- 18. ASMX에서 정적 메서드를 호출 할 때의 주의점
- 19. 내 배열에서 Contains 메서드를 호출 할 수없는 이유는 무엇입니까?
- 20. Iterator에서 특정 클래스 메서드를 호출 할 수없는 이유는 무엇입니까?
- 21. 문자열을 통해이 메서드를 호출 할 수없는 이유는 무엇입니까?
- 22. 메서드를 비동기 적으로 호출
- 23. 앱 시작 이후 처음으로 메서드를 호출 한 경우 메서드를 확인하는 가장 쉬운 방법은 무엇입니까?
- 24. LINQ 쿼리 결과의 메서드를 간략하게 호출
- 25. WCF 호출 내에서 SQL 연결을 처리하는 좋은 방법은 무엇입니까?
- 26. 내 정적 메서드를 호출 한 클래스는 무엇입니까?
- 27. WCF를 사용할 때 팩토리 메서드를 만드는 가장 좋은 방법은 무엇입니까?
- 28. jQuery.sheet.SUM() 메서드 호출 방법은 무엇입니까?
- 29. .Net에서 확장 메서드를 사용하는 가장 좋은 방법은 무엇입니까?
- 30. remove() 메서드를 호출하는 방법은 무엇입니까?
안녕하세요, 저는이 답변을 좋아합니다. 감사. –