Да, учитывая точный контекст, могут быть различные подходы к этой проблеме.
В данный момент я могу думать о том, чтобы сначала получить все свойства исходного объекта, а затем использовать setValue:value forKey:key
для установки значений для целевого объекта.
Код для извлечения всех пользовательских свойств:
-(NSSet *)propertyNames {
NSMutableSet *propNames = [NSMutableSet set];
unsigned int outCount, i;
objc_property_t *properties = class_copyPropertyList([self class], &outCount);
for (i = 0; i < outCount; i++) {
objc_property_t property = properties[i];
NSString *propertyName = [[[NSString alloc]
initWithCString:property_getName(property)] autorelease];
[propNames addObject:propertyName];
}
free(properties);
return propNames;
}
Для получения дополнительной информации вы можете обратиться к Руководству по программированию кодирования значения ключа .