【发布时间】:2011-07-18 17:04:26
【问题描述】:
我正在为每个循环动态创建UILabels。运行的每个循环都会创建 1-4 个 UILabel。
我想要的是我将这些 UILabel 放入我的 NSMutableArray 中,以便以后能够轻松检索数据。
我最初的想法是将这些 UILabel 放入 NSDictionary 并使用 [dictGroupLabels setValue:uiLabel1 forKey:@"uiLabel1"] 然后使用 [dictGroupLabels setValue:uiLabel2 forKey:@"uiLabel2"] 等等。然后为每个循环将这个字典放入我的 NSMutableArray 中。稍后我可以访问像 UILabel *label = [[myArray objectAtIndex:0] valueForKey:@"uiLabel1"] BUT 这样的值,不幸的是,由于 UILabel 不符合 NSCopying 协议,所以它不起作用。
那么考虑到这一点,您将如何解决这个问题?
【问题讨论】:
-
良好实践表明,如果处理静态数量的标签,则每个 UILabel 都有一个 (n IBOutlet) 变量。否则,您应该能够将引用放入字典或数组中,然后再将它们拉出。但是,它们应该是对原始标签的引用:而不是副本。如果你想要副本,要么继承 UILabel 并实现类似
-(UILabel)copy的方法,要么创建一个具有所有相同属性的新 UILabel。
标签: objective-c indexing nsmutablearray uilabel nsdictionary