programing

문자열을 이용한 동적 C 호출 방법

testmans 2023. 10. 12. 22:16
반응형

문자열을 이용한 동적 C 호출 방법

그냥 메소드의 이름을 문자열로 즉석에서 만드는 메소드를 호출하는 방법이 있는지 궁금합니다.

예를 들어 loaddata라는 방법이 있습니다.

-(void)loadData;

이것을 부르는 것은 보통 그렇게 부릅니다.

[self loadData];

하지만 저는 문자열로 동적으로 호출할 수 있기를 원합니다.

NSString *methodName = [[NSString alloc] initWithString:@"loadData"];
[self methodName];

이것은 어리석은 예이지만 당신이 내 요점을 이해하기를 바랍니다.IPad 어플리케이션을 위해 설정하는 데이터 바인딩 클래스에 사용하고 있습니다.설명하기 어렵지만 불을 붙이려면 끈으로 메소드를 호출하는 방법을 생각해야 합니다.

무슨 생각 있어요?

감사해요.

당신은 다음과 같은 것을 시도할 수 있습니다.

SEL s = NSSelectorFromString(selectorName);
[anObject performSelector:s];

objc_msgSend 기능을 이용하실 수 있습니다.여기에는 수신기와 선택기의 두 가지 파라미터가 필요합니다.

objc_msgSend(self, someSelector);

다음을 사용하여 문자열을 적절한 선택기로 변환해야 합니다.NSSelectorFromString:

NSString *message = [self getSomeSelectorName];
objc_msgSend(self, message);

메서드는 또한 변수 개수의 인수를 사용하므로 임의 개수의 인수를 사용하여 메시지를 보낼 수 있습니다.

NSString *message = [self getSomeSelectorNameWithManyArguments];
objc_msgSend(self, message, arg1, arg2, arg3, arg4);

언급URL : https://stackoverflow.com/questions/4446883/objective-c-calling-method-dynamically-with-a-string

반응형