2014-05-13 2 views
0

다음 메소드 선언은 무엇을 설명합니까? 그것은 하나의 결과를 반환해야하지만, 분명히이 두 가지를 반환Objective C 메소드 선언을 이해할 수 없습니다.

(UITableViewCell *)tableView:(UITableView *)tableView 

:

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

는 내가 이해하지 못하는 것은 방법의 결과의 설명이다. 방법?

+0

이 빠른 답변에 많은 시간을드립니다. 이제 나는 그것을 이해한다. 나를 위해 객관적인 C는 C++보다 읽기가 더 복잡합니다. 메서드 이름을 분리하면 혼란 스럽습니다. 그러나 이것은 나에게 달려있다. 아마도 다른 사람들은이 구문을 좋아합니다. – grenzfrequence

+0

http://stackoverflow.com/questions/8079471/how-does-cellforrowatindexpath-work/8079761#8079761 – Omarj

답변

3

실제로는 하나의 반환 값 (결과)이 있습니다. C++/자바

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

은의 Obj-C의 전체 메소드 이름은 -tableView:cellForRowAtIndexPath:입니다이

UITableViewCell * getTableViewCellForRowAtIndexPath(UITableView *tableView, NSIndexPath *indexPath) 

같은 것입니다. Obj-C는 문장과 비슷한 메서드 이름을 사용하기로 결정했습니다. 매개 변수는 해당 문장의 단어와 같습니다. 또한 메서드 이름의 시작 부분에 보통 get을 사용하지 않습니다.

이 경우 메서드 이름을 문장으로 읽을 수 없으므로 혼동이 가능합니다.

0

초보자는 괜찮습니다. 피자를 절대로 1 바이트로 먹을 수는 없습니다. 쉽게 먹을 수 있도록 작은 조각으로 나누십시오.

동일한 사실이 Objective-C에 의해 실현되었습니다.

간단한 경우 고려해

우리 5 개 매개 변수를 정규 C의 방법을 정의하는 발언권을, 그리고 그 결과, 제 3의 인수로 곱 처음 두 개의 제 1 및 제 2 인자의 결과, 추가 마지막 인수는 다섯 번째 인수에 더해진다. 지금

float aLittleComplexFunction(int first, int second, int third, int fourth, int fifth) { 
    return ((((float)first + second) * third)/fourth) + fifth; 
} 

힘든 때문에 내가 좋은 함수 이름을 가지고 올 수 없다는 것을 유의하십시오

다음은 함수의 정의 될 것이다. addTwoNumbersAndThenMultiplyAndThenDivideAndThenAdd과 같은 함수 이름은 과도하게 사용됩니다. 이 목표 - C에 올 때

지금, 그것은 다음과 같은 작은 조각으로 분해 :

float addNumber:(int)first into:(int)second multiplyWith:(int)third divideWith:(int)fourth addWith:(int)fifth { 
    return ((((float)first + second) * third)/fourth) + fifth;  
} 

같은 당신이 질문 한 내용의 경우. Objective-C에서는 함수 이름이 분할되어 있고 각 부분에 관련 매개 변수가 있으므로 함수의 실제 목적을 더 쉽게 알 수 있습니다.

시작하기가 어려울 수도 있지만 일단 그렇게되면 일반적인 C 방법을 싫어하게됩니다.

관련 문제