는 부분으로 분해 할 수 있습니다. 대안은 클래스 메소드를 의미하는 +
입니다.
(NSInteger)
이것은 메소드의 리턴 유형입니다. 이 경우는 NSInteger
입니다.
tableView:
(전체, tableView:numberOfRowsInSection:
에서,) 셀렉터 명의 제 1 성분. :
은 매개 변수가 뒤 따른다는 것을 나타냅니다.
(UITableView *)
매개 변수의 유형입니다.
tableView
매개 변수의 이름입니다. 이것은 메소드 시그니처 (메소드에 대한 힌트를 제외하고는)와는 크게 관련이 없지만 구현시에는 해당 매개 변수에 바인드 된 변수입니다.
numberOfRowsInSection:
선택자 이름의 다음 구성 요소.
(NSInteger)
두 번째 매개 변수의 유형입니다.
section
두 번째 매개 변수의 이름입니다.
주, 전체 라인이 유일한 필수 공간 tableView
및 numberOfRowsInSection:
사이이다. 다른 모든 공간은 가장 일반적인 형식은이 같은 모습을 찾을 수 있지만
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
을 생산하기 위해 생략 할 수 있습니다
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
편집 : 여전히에 대한 혼란이처럼이 보이는 질문의 후반부. 선택자의 tableView:
구성 요소는 질문을 묻는 UITableView*
인스턴스를 제공합니다.UITableViewDataSource
프로토콜의 모든 메서드는 보내는 테이블 뷰를 인수로 제공합니다. 이러한 메소드 중 일부는 다른 인수가 있으며 일부는 그렇지 않습니다. 추가 인수가있는 문자는 모두 tableView:someOtherThing:
(예 : tableView:numberOfRowsInSection:
)으로 형식화되어 있지만 필수는 아닙니다. numberOfRowsInTableView:forSection:
또는 numberOfRowsInSection:ofTableView:
또는 심지어 foo:bar:
이라고 할 수 있지만 API 개발자가 개발자와 코드를 나중에 읽는 데 도움이되는 일관된 명명 체계를 유지하기 위해 스타일을 선택한 것입니다. 다른 매개 변수를 사용하지 않는 메서드는 numberOfSectionsInTableView:
처럼 보이는데 이는 메서드의 자연스러운 이름이기 때문입니다. 그것은 tableView:numberOfSections
이라고 불릴 수 없습니다. 이는 잘못된 선택자입니다 (첫 번째 이후의 모든 구성 요소는에 매개 변수가 있어야하며 따라서 후행 :
이어야합니다). 각각의 경우에
downvote에 대한 이유는 무엇입니까? – Alan