2013-03-14 3 views

답변

10

여러 개의 데이터 객체를 하나로 캡슐화하는 NSArray 객체 또는 NSDictionary를 사용할 수 있습니다! 예에서 :

NSArray * myDataArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:0], [NSNumber numberWithInt:2],@"A String", nil]; 

[self performSelector:@selector(doStuff:) withObject:myDataArray afterDelay:1.0]; 

-(void)doStuff:(NSArray *)array{ 
    NSNumber * myNumber = [array objectAtIndex:0]; 
    NSNumber * myNumber2 = [array objectAtIndex:1]; 
    NSString * myString = [array objectAtIndex:2]; 
} 
+0

당신은 또한 가져 당신이 필요로하는 인수로있는 NSArray를 사용하는 방법을 수정할 필요없이, 많은 인수를 전달하는 objc_msgSend를 호출 할 수 있습니다. – Pellet

0

수 없습니다. 그러나 NSDictionary을 전달할 수 있으며 여러 개체를 압축하고 추출 할 수 있습니다.

또한 NSInvocation 클래스를 살펴보십시오.

4

NSObject 프로토콜로 선언 된 performSelector:withObject:withObject:을 사용하여 최대 두 개의 매개 변수를 직접 전달할 수 있습니다.

예제를 사용하면 선택자는 @selector(methodName:withObject:)이됩니다.

관련 문제