동일한 메시지를 보내려는 여러 클래스가 있습니다. 더 명확하게하기 :동일한 메시지를 여러 ObjC 클래스에 전달
doX : withClass : 동일한 매개 변수를 사용하여 여러 클래스에 보내고 싶습니다. 아마도 코드는 명확하게 다음과 같습니다
+ (void)doX:(NSString *)blah {
[Utility doX:blah withClass:[Foo class]];
[Utility doX:blah withClass:[Bar class]];
[Utility doX:blah withClass:[Baz class]];
[Utility doX:blah withClass:[Garply class]];
}
을 내가 특정 프로토콜합니다 (DOX 구현하는 클래스에 비슷한 할 세 가지 방법이 있습니다 그것을 구현하는 클래스가 주어진 것으로 가정 방법은 여러 단계를 수행합니다 withClass를 그러한 프로토콜).
제 질문은 어떻게하면 프로그래밍 방식으로 클래스를 반복 할 수 있습니까? 그래서 간단히 목록에 코드를 추가하여 루프에 추가 할 수 있습니다.
본문을'[클래스 makeObjectsPerformSelector : @selector (doX :) withObject : blah]'로 변경할 수 있습니다. – mipadi
글쎄, 나는 클래스가 선택자를 수행하는 것을 원하지 않는다; 유틸리티 클래스가 클래스를 인수로 사용하여 메서드를 실행하도록합니다. 이는 작동중인 객체가 특정 인터페이스를 구현하는 클래스에서 Utility 클래스가 수행해야하는 동작에서 간단하고 추상적으로 유지해야하기 때문입니다. 고마워, - 클래스가 배열에 직접 추가 될 수 있다는 것을 알지 못했다. 나는 그들이 어떻게 든 캡슐화되어야한다고 생각했습니다. –
@Andrew, 대답을 업데이트했습니다. –