2014-02-25 2 views
0

@selector 메서드에 간단한 정수 매개 변수를 전달할 수있는 방법이 있습니까? 시도해 볼 수있는 하나의 라이너 코드를 공유하십시오. 보낸 사람과 태그를 사용하여 시도했지만 예상대로 작동하지 않고 매개 변수로 int 값을 전달하고 메서드 호출에서 수집하는 것을 선호합니다.@selector 메서드에서 매개 변수로 int를 전달하는 방법

버튼의 액션에서 호출 된이 정수 값을 전달하고 싶습니다. 발신자 ID 등을 사용하고 싶지 않습니다. 다른 방법으로 알려주십시오.

static int i=1; 
[button addTarget:self 
      action:@selector(removeTextField:) 
forControlEvents:UIControlEventTouchDown]; 
+0

이 코드를 사용하여 수행하려는 작업을보다 자세하게 설명하십시오. 귀하의 말씨가 명확하지 않습니다 – Nick

답변

2

클릭 한 버튼을 추적하는 방법을 원한다고 가정합니다.

button.tag = 1; 
[button addTarget:self action:@selector(removeTextField:) forControlEvents:UIControlEventTouchDown]; 

다음 보낸 사람을 통해 태그를 검색 :

-(IBAction) removeTextField:(id)sender 
{ 
    UIButton *button = (UIButton *) sender; 
    NSLog(@"%d",button.tag); // an NSInteger 
} 

는 서브 클래스와 같은 다른 해결 방법이 있습니다이 경우, 가장 간단한 방법은 정수로 버튼의 태그를 설정하는 정말 UIButton,하지만 그들은 대부분 상당한 양의 작업이 필요합니다.

+0

나는 세트와 태그를 가지고 명확하다, 나의 요구 사항은 함수 정의에서 호출되고 은퇴 한 int 값 함수를 전달하는 것이다. – Max

-1

int를 NSUInteger 또는 NSNumber로 변환해야합니다. 다시

NSNumber* iParam = [NSNumber numberWithInt:i]; 

가져 오기 int 값은 :

int i = [iParam intValue]; 
+0

또는 문자열 리터럴 (?)을 사용하여 변환을 단축하십시오. @ (i) –

0

당신은 선택을 통해 인수를 전달할 수 없습니다. 그러나 INT를 클래스 속성으로 만들고 클래스 내의 모든 메서드에서 액세스 할 수 있습니다. 선택기를 사용하는 것과 같은 방법으로 설정 한 다음 선택기가 가리키는 방법으로 액세스 할 수 있습니다.

또는 단추의 태그를 필요한 값으로 설정하여이를 int로 전달할 수는 있지만 가장 좋은 방법은 아닙니다.

관련 문제