Автоматическая распаковка возможна в Objective c ...
Пожалуйста, прочитайте следующий код
@interface Class1 : NSObject
@property(nonatomic,assign)int intval;
@end
/// Теперь мы собираемся создать экземпляр class1 в class2 и присвоим переменной экземпляра значение посредством отражения
@implementation Class2
-(void)TestClass1
{
Class1 *clsObj=[[Class1 alloc]init];
[clsObj setValue:@"3" forKey:@"intval"];
NSLog(@"%d",clsObj.intval);
}
@end
Если вы запустите приведенный выше код, вы получите значение 3 ... Нет ошибки
[clsObj setValue:@"3" forKey:@"intval"];
Для intVal задано строковое значение 3, и оно автоматически распаковывается для назначения в качестве типа int переменной экземпляра intVal