(Objective-C) 间接触发某个对象的某一方法
2022-11-27 本文已影响0人
布呐呐u
performSelector
- 无参数
- (id)performSelector:(SEL)aSelector;
// eg:
- (void)aSelectorTest { NSLog(@"aSelectorTest"); }
// ex:
if ([self respondsToSelector:@selector(aSelectorTest)]) {
[self performSelector:@selector(aSelectorTest)];
}
- 一个参数
- (id)performSelector:(SEL)aSelector withObject:(id)object;
// eg:
- (void)aSelectorTest:(NSString *)testString {
NSLog(@"aSelectorTest == %@", testString);
}
// ex:
if ([self respondsToSelector:@selector(aSelectorTest:)]) {
[self performSelector:@selector(aSelectorTest:) withObject:@"a test string"];
}
- 两个参数
- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
// eg:
- (void)aSelectorTest:(NSString *)testString at:(int)index {
NSLog(@"aSelectorTest == %@, index == %i", testString, index);
}
// ex:
if ([self respondsToSelector:@selector(aSelectorTest:at:)]) {
[self performSelector:@selector(aSelectorTest:at:) withObject: @"other test string" withObject: @6];
}