我正忙于将我的 Objective C 代码转换为 ARC(自动引用计数),并遇到了以下问题:
ARC 不允许将“NSInteger”(又名“int”)转换为“SomeRandomObject”。
现在在我们的应用程序中(不幸的是)我们一直在使用标签 NSInteger 属性,例如位于 UITextField、UISwitch 等上的标签,将对象链接到控件。
例如
Field *field = [[Field alloc] init...
UITextField *textField = [[UITextField alloc]....
textField.tag = (NSInteger)field;
当代码到达事件时,您可以简单地执行此操作
UITextField *textField = (UITextField*)sender;
Field *field = (Field*)textField.tag; // ARC hates this
实现这一目标的更标准/更好的方法是什么?