Objective c 迭代/循环目标C中类的所有属性
可能重复: 问题是UITableView的每一行上都有许多UILabel,我需要将模型类的属性(当然是NSString)映射到标签标题 由于有多个标签(超过12个,以后在我的项目中可能会增加),因此我使用for循环来分配所有标签。但是为了将变量映射到标签,我每次都必须硬编码对应的标签 有没有办法循环一个类的所有属性,这样我就可以按顺序声明它们,并将它们作为数组获取,并正确地映射它 我已经看到并理解了上面可能存在的重复链接,但它会在代码中填充尽可能多的开关案例,设置的次数也是如此。相反,使用循环进行简洁、更清晰的编码还有其他选择 任何帮助都将不胜感激。Objective c 迭代/循环目标C中类的所有属性,objective-c,loops,properties,Objective C,Loops,Properties,可能重复: 问题是UITableView的每一行上都有许多UILabel,我需要将模型类的属性(当然是NSString)映射到标签标题 由于有多个标签(超过12个,以后在我的项目中可能会增加),因此我使用for循环来分配所有标签。但是为了将变量映射到标签,我每次都必须硬编码对应的标签 有没有办法循环一个类的所有属性,这样我就可以按顺序声明它们,并将它们作为数组获取,并正确地映射它 我已经看到并理解了上面可能存在的重复链接,但它会在代码中填充尽可能多的开关案例,设置的次数也是如此。相反,使用循环进
愉快的编码。如果您谈论的是UILabel,我假设您希望通过IB在Xcode中使用它们,但是您在代码中创建它们只是因为您可以在代码中循环 如果是这样,您可以考虑使用
IBOutletCollection
代替IBOutlet,如下所示:
@property(非原子,强)IBOutletCollection(UILabel)NSArray*标题标签代码>
此数组中的顺序将与您在IB ui中添加它们时的顺序相同
希望,这会有所帮助。我认为两者相似,没有太大区别。是的,我可以使用iBootletCollection,但这不是我的主要要求。它是关于如何以特定顺序从类对象获取属性列表,并直接将它们映射到标签,而不使用开关大小写。