You still had to tell the compiler ahead of time about the property. The actual test is more like
NSObject obj = [NSObject init];
giveObjectAProperty(obj, @"progressView");
obj.progressView = [NSNumber 42];
Writing giveObjectAProperty may not be "nearly impossible" but it sure isn't easy.And of course the parent is talking about methods, not properties, but...same argument.