난 당신이 내가하지 않는 것이 좋습니다 자바 나 C++와 같은 OOP 프로그래밍 언어와 연관 목표 - C를 이해하려고 노력하는 것이라고 생각합니다. 시간이 지남에 따라 Objc 접근법을 이해하고 좋아할 것입니다. 실제로 그것을 즐기기까지 6 개월이 걸렸습니다. 이제 ObjC 개발 만 즐길 수 있습니다.
어쨌든 ObjC 남자. 라고 다음
방법의 실제 이름 (은 insertObject : atIndex이 :) 콜론 문자를 포함 서명 키워드, 모두의 연결합니다. 콜론 문자는 매개 변수가 있음을 나타냅니다. 메서드 에 매개 변수가없는 경우 이라는 첫 번째 (및 유일한) 서명 다음에 콜론 을 생략합니다. 이 예에서 메서드 은 두 개의 매개 변수를 사용합니다.
Source: Methods and Messaging
편집
메서드를 이름의 ObjC 방법, 내가하지만 메시지 ("무엇을 의미하는지에 대한 더 나은 내가 메서드 이름에 대해 생각하지 않기 때문에 그것을 좋아 다른 오브젝트에 의해 ") 오브젝트 으로 보내고 싶습니다.
NSArray *list = [object_a fromCategory:@"Literature" authorsStartingWith:@"Em"];
또는
NSArray *list2 = [object_a fromCategory:@"Literature" authorsStarginWith:@"EM" fromCentury:@"16"]
봅니다, 같은 자연 언어를 사용하고 object_a에 메시지를 번역하려면 : 카테고리 문학에서 저를 줄 "이봐 객체의 모든 저자는 "em"으로 시작하고 종관 16 "에서 온 stargin입니다. - 이것은 메시지입니다 - 별도의 메서드가 필요하지 않습니다. 이름 - 모두 함께 볼 수 있습니다. 메서드 이름 (사람이 말한대로).
"메소드 오버로딩"이라고 불렀던 것을 수행하는 데 ObjC 방식으로 얼마나 우아하고 명확합니까?
네, 아마도 당신 말이 맞아요. 아이폰은 유행이지만, 목표 C는 분명히 아니다 : P – aXqd
안녕, 척, 나는 너의 논평의 첫 번째 단락을 재고했다. 나는 그것이 얼마나 힘들지는 모르겠다. 결국 메시지 전달을위한 새로운 구문을 도입했습니다. 나는 현대의 '키워드 논쟁'을 요구하지 않고있다. 주문을 변경할 수 없다면 괜찮습니다. 우리가 원하는 것은 첫 번째 인수에 두 번째, 세 번째 ... 인수에 할 수있는 것과 별도의 이름을 지정하는 것입니다. – aXqd
인수에 별도의 이름을 지정하지 않습니다. 하나의 선택자가 있습니다. 관습에 따라, 섹션은 인수의 이름을 지정하지만 연결은 고유하지 않습니다. 저는 여러분이 정말로 왜 우리가 선택자의 첫 번째 논리 섹션에 임의의 위치를 채울 수 없는지 묻고 있다고 생각합니다. 그것은 실제로 일치하지 않을 것입니다 *. 다른 임의의 위치에 공백을 둘 수는 없습니다. 인수가있는 콜론에서만 선택자를 분리 할 수 있습니다. * 언어가 이러한 불일치를 포함하도록 고안되었을 수 있습니까? 확실한. 그러나 그것은 그렇지 않았습니다. 그리고 그것은 별 차이가 없습니다. – Chuck