object_getInstanceVariable的替代方案

时间:2017-03-30 16:24:40

标签: objective-c

我认为不太了解升级旧项目中使用的object_getInstanceVariable的最佳方法是什么。

换句话说,使用什么是最好的而不是以下指令?

object_getInstanceVariable(self, [[@"t" stringByAppendingFormat:@"%d", x] UTF8String], (UITextField **)&textField);

1 个答案:

答案 0 :(得分:0)

您可以使用valueForKey:,例如:

textField = [self valueForKey:[@"t" stringByAppendingFormat:@"%d", x]];

与您的代码不同,这将找到实例变量和属性。

如果变量或属性不存在,这也会抛出异常。这可以通过覆盖目标类valueForUndefinedKey:(在您的案例中为self)来解决。