0

配列内に多数のキーと値があり、無事に呼び出せるかどうかを知りたい

[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];
        }
    }];

そのようなチェックを行うさらに簡単な方法があるかどうか、私は興味があります。

4

0 に答える 0