2012-12-26 1 views
0

내 응용 프로그램에서 UIElements (UIButton, UILable 등)에 NSMutableDictionary을 연결하려면 각 요소를 서브 클래 싱하여 쉽게 얻을 수 있지만 내 자신을 UIControl 하위 클래스로 만들 수 있는지 알고 싶습니다. 유형 NSMutableDictionary -을 프로그래밍 방식으로 생성하여 서브 클래스의 수를 줄일 수 있도록 수퍼 클래스로서 UIElement을 생성했습니다.내 UIControl 하위 클래스를 프로그래밍 방식으로 생성 된 UIElements의 수퍼 클래스로 만드는 방법은 무엇입니까?

@interface UIControl : MyControls 
{ 

} 
@property(nonatomic,retain) NSMutableDictionary *details; 
@end 

처럼 여기

하고 있지 서브 클래스에 의해,이 작업을 수행 할 수 있습니다

+1

NSMutableDictionary를 모든 UIElements에 연결하면 무엇을 의미합니까? NSMutableDictionary를 모든 UIElement의 속성으로 추가 하시겠습니까? UIButton에 사전이 첨부되기를 원하십니까? 당신의 목표는 무엇입니까? 당신이 다루고있는 문제를 해결할 수있는 더 좋은 방법이있을 것입니다. –

+0

@Inturbidus 당신은 그 해결책을 해답으로 줄 수 있고 그에 따라 제 질문을 바꿀 것입니다. –

+1

질문에 대한 답변이 없습니다. 아마도 문제를 해결하는 데 도움이 될 수 있지만 목표가 무엇인지 알아야합니까? –

답변

0

모든 프로그램 생성 UiElements의의 슈퍼 클래스로 MyControls을 만들지 만합니다 (UIControl 자체에 자신의 속성과 메소드를 추가하여 UIButton, UILabel 등의 슈퍼 클래스). 그런 다음 인스턴스화하는 모든 표준 단추, 레이블 등에 상속됩니다. Objective-C를 사용하면 Categories을 사용하여 매우 쉽게 자신의 메서드를 추가 할 수 있습니다. 그러나 범주를 통해 인스턴스 변수를 추가 할 수는 없습니다. 이를 수행하려면 Objective-C Runtime Reference에 설명 된 연관 참조를 사용해야합니다.

이 작업을 수행하는 방법에 대한 자습서가 있습니다. here.

그런데, 나는 inturbidus에 반드시 동의하지 않습니다. 그러나이 길로 가고 싶다고 확신한다면 그렇게 할 수 있습니다.

+0

카테고리! = 서브 클래스. 이것을 조심하십시오. – CodaFi

+0

@CodaFi 서브 클래 싱이 아니라는 것을 명확히하기 위해 대답을 편집했습니다. – vortek

+0

명확한 설명을 해주셔서 감사드립니다. 범주는 여전히 본질적으로 ... 관련 객체에 있어서는 위험합니다 (완전히 안전하지는 않은 것처럼). – CodaFi

관련 문제