通过respondsToSelector查看是否存在实例方法

时间:2012-08-10 13:18:29

标签: ios selector

我在数组中有一堆键和值,想知道我能不能打电话

[self setValue:obj forKey:key];

为我的班级。目前我使用以下方法来查看setter方法是否存在。

    [userDefaults enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        NSString *firstCapChar = [[key substringToIndex:1] capitalizedString];
        NSString *cappedString = [key stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:firstCapChar];
        SEL selector = NSSelectorFromString([[@"set" stringByAppendingString:cappedString] stringByAppendingString:@":"]);
        if ([self respondsToSelector:selector]) {
            [self setValue:obj forKey:key];
        }
    }];

我很好奇是否有更简单的方式进行这种检查。

0 个答案:

没有答案