Нечувствительный к регистру KVC в какао? [закрытый]

Interval, как предложил Реми, является решением.

_animation1 = Tween<double>(begin: 0.2, end: 1).animate(CurvedAnimation(
  parent: _controller,
  curve: Interval(0.5, 1.0),
));
_animation2 = Tween<double>(begin: 0.2, end: 1).animate(CurvedAnimation(
  parent: _controller,
  curve: Interval(0.8, 1.0),
));
6
задан Chris Hanson 1 January 2009 в 03:02
поделиться

4 ответа

Не переопределять -[NSObject valueForKey:] и -[NSObject setValue:forKey:] если Вы можете во всей справке он.

Ваш лучший выбор состоял бы в том, чтобы преобразовать ключи, которые Вы получаете от XML-файла на лету. Используйте отдельный метод сделать преобразование, и можно также поддержать кэш имен к ключам свойства, таким образом, только необходимо сделать каждое преобразование однажды.

- (NSString *)keyForName:(NSString *)name {
    // _nameToKeyCache is an NSMutableDictionary that caches the key
    // generated for a given name so it's only generated once per name
    NSString *key = [_nameToKeyCache objectForKey:name];
    if (key == nil) {
        // ...generate key...
        [_nameToKeyCache setObject:key forKey:name];
    }
    return key;
}

- (void)foo:xmlElement {
    for (xmlProperty in xmlElement) {
        [myObject setValue:xmlProperty.value forKey:[self keyForName:xmlProperty.name]].
    }
}
3
ответ дан 9 December 2019 в 22:41
поделиться

Можно использовать NSString's lowercaseString преобразовать ключевое имя XML к нижнему регистру, если это помогает.

3
ответ дан 9 December 2019 в 22:41
поделиться

Переопределение -valueForKey: и -setValue:forKey:.

Необходимо, вероятно, только принять ключи (элемент/названия атрибута), Вы распознаете, и призыв к super для других ключей.

1
ответ дан 9 December 2019 в 22:41
поделиться

Переопределение -valueForUndefinedKey: и -setValue:forUndefinedKey:

Если Вы находите, что ключ с другой капитализацией использует его, иначе призыв к super.

3
ответ дан 9 December 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: