我认为不太了解升级旧项目中使用的object_getInstanceVariable的最佳方法是什么。
换句话说,使用什么是最好的而不是以下指令?
object_getInstanceVariable(self, [[@"t" stringByAppendingFormat:@"%d", x] UTF8String], (UITextField **)&textField);
答案 0 :(得分:0)
您可以使用valueForKey:
,例如:
textField = [self valueForKey:[@"t" stringByAppendingFormat:@"%d", x]];
与您的代码不同,这将找到实例变量和属性。
如果变量或属性不存在,这也会抛出异常。这可以通过覆盖目标类valueForUndefinedKey:
(在您的案例中为self
)来解决。