我在一个数组中有一堆键和值,想知道我是否可以调用
[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];
}
}];
我很好奇是否有更简单的方法进行这种检查。