2012-04-30 4 views
-5

가능한 중복 :
How can I send two arguments in a selector method?조치 : @selector 목표 C에서

나는 버튼의 동작을 쓰고 있어요. 그러나 선택기로 쓰는 메서드는 두 개의 매개 변수를 사용합니다. 조치 : : @selector (MyMethod라는)

+0

-1,이 사용자는 질문을 동적으로 변경할 수 있습니다 ..! – Dinesh

+0

불가능합니다. 하나의 매개 변수 만 사용할 수 있습니다. 그리고 btw, 그 질문은 여기에 많은 시간을 물었습니다. – Till

+0

@Dinesh 모든 사용자는 5 분 이내에 편집 이벤트를 트리거하지 않고도 작업을 수행 할 수 있습니다. – Till

답변

1

에 "조치"방법을 전달하는 유일한 인수 작업을 트리거 한보기이다 sender, (그리고 그것은 선택 사항입니다) 내가 어떻게 코드에서 메소드 이름을 작성합니다. 따라서 보낼 인수가 여러 개 없기 때문에 여러 개의 인수를 하나의 작업 메서드에 전달할 수 없습니다.

하지만 액션에서 다른 메서드를 호출 할 수 있습니다.이 메서드는 원하는 모든 인수를 포함 할 수 있습니다.

- (void)viewDidLoad { 
    myButton.action = @sel(myAction); 
} 

- (void)myAction { 
    [self someMethod:@"first argument" withOtherArg:@"second argument"]; 
} 
0

우선 : 당신이 새로운 무언가를 요청하기 전에 추가 답변을 받아 들여야한다, 사람들이 당신을 도움이되지 경향이있다.

답 :

사용하면 (사전 자체를) 통과 멀리 당신이 하나 개의 매개 변수를해야합니다 당신이 parameters.This로 전달할 원 2 개 값을 넣을 수있는 사전. 코드를보다 명확하게 만들고 미래에 필요할 경우 더 많은 매개 변수를 전달할 수있는 유연성을 제공합니다. 의견을 남기는 것을 잊지 마십시오. 사전에 무엇을 넣고 있는지 잊지 마십시오.

+2

ubutton은 자신을 전송한다고 생각하기 때문에이 해결책은 불가능합니다. (물론 서브 클래스가 아니면) – Pochi