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),
));
Не переопределять -[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]].
}
}
Можно использовать NSString's lowercaseString
преобразовать ключевое имя XML к нижнему регистру, если это помогает.
Переопределение -valueForKey:
и -setValue:forKey:
.
Необходимо, вероятно, только принять ключи (элемент/названия атрибута), Вы распознаете, и призыв к super
для других ключей.
Переопределение -valueForUndefinedKey:
и -setValue:forUndefinedKey:
Если Вы находите, что ключ с другой капитализацией использует его, иначе призыв к super
.