2014-05-15 2 views
0

다양한 다양한 속성에 대해 UILable을 구성하는 메서드를 만들려고합니다. 다른 UILable에 대해서도 동일한 구성을 사용하기 위해 같은 방법을 사용하고 싶습니다. 현재 내 코드는 다음과 같습니다.개체 자체의 메서드 호출

-(UILabel *) setUpLabel:(UILabel *)label { 
/* Label configuration code*/ 
} 

나는 그것이 더 나은 방법으로 수행 할 수 있는지 궁금

{... 
    UILabel *lbl = [UILabel alloc] init]; 
    lbl = [self setUpLabel:lbl]; 
...} 

다음과 같은 코드를 호출합니다.

미리 감사드립니다.

+4

당신은 아마하지 않는이 경우 두 번째 추천 : 참조로

-(UILabel *) setUpLabel:(NSDictionary *)config { /* Label configuration code*/ } UILabel *myLabel = [self setupLabel:config]; 

패스 : 당신은 모두의 하이브리드 ...

공장을하고있다 UILabel을 반환해야 할 필요가 있습니다. UILabel 인스턴스에 대한 조작은 호출자에게 계속됩니다. –

+0

Kevin이 옳습니다. 매개 변수로 설정하고자하는 레이블을'setUpLabel :'메소드에 전달하기 만하면 전달 된 레이블에서 설정이 수행됩니다. – chetem

+0

개인적으로, 나는 반환 값을 남기 겠지만 전달 된 매개 변수를 제거하고 alloc/init을'setUpLabel' 메서드로 옮깁니다. 이렇게하면 레이블 선언을 한 줄로 압축 할 수 있습니다. 'UILabel * lbl = [self setUpLabel]; – Stonz2

답변

0

동일한보기 컨트롤러에서 다중 레이블로 다시 사용하려면이 방법을 사용하는 것이 좋습니다.

다른 뷰 컨트롤러에서 해당 메서드를 공유하려면 이러한 메서드가 포함 된 "테마"싱글 톤 개체를 만드는 것이 일반적입니다. 또는 'UILabel'에 카테고리에 메소드를 추가 할 수 있습니다.

0

Sumit, 귀하의 코드가 조금 이상합니다. 팩토리 패턴을 따라 레이블을 만들거나 참조로 원하는 레이블을 전달하여 구성을 수행 할 수 있습니다.

-(void) setUpLabel:(UILabel *)label { 
/* Label configuration code*/ 
} 

UILabel *lbl = [UILabel alloc] init]; 
[self setUpLabel:lbl]; 

내가

관련 문제