からNSSelectorFromString
を作成するために使用します。次に、いずれかの方法を使用して実行できます。SEL
NSString
performSelector
プロパティを動的に設定する:
SEL setter = NSSelectorFromString(@"setProperty:");
[myObject performSelector:setter withObject:newValue];
プロパティを動的に取得する:
SEL getter = NSSelectorFromString(@"property");
id myProperty = [myObject performSelector:getter];
NSInvocation
より複雑な方法については、 andを使用できますNSMethodSignature
。
SEL action = NSSelectorFromString(@"someMethod:withArguments:");
NSMethodSignature *signature = [myObject methodSignatureForSelector:action];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setArgument:arg1 atIndex:2]; // indices 0 and 1 are reserved.
[invocation setArgument:arg2 atIndex:3];
[invocation invokeWithTarget:myObject];
id returnedObject;
[invocation1 getReturnValue:&returnedObject];