关于保持田径追踪的建议

时间:2012-11-20 22:16:36

标签: iphone ios xcode

我发布此消息是为了获得有关最佳方法的建议。

我正在创建一个程序,用户可以在其中选择要使用的字段。该列表将在下一个屏幕上以表格的形式显示。根据所选字段,textFields中的placeHolder会发生变化。因此,我必须跟踪选定的字段。

到目前为止,我已考虑过以下方法:

  1. 两个数组。一个存储单元格上的标签列表,第二个数组存储1/0值。 1:选择字段,0:未选择。因此,我必须从数组1中获取字段的名称,以及是否从第二个字段中选择它。

  2. 一个包含1/0的数组,指示是否选择了该字段。我遍历数组以确定是否应该显示哪个placeHolders。

  3. NSDictionary:它将包含对象:“字段名称”和键:1或0.

  4. 我没有找到这些选项中的任何一个作为良好的编程习惯,因为有很多if和else语句加上,代码中有大量的重复。

    您能否提出解决此问题的最佳方法?

    谢谢!

2 个答案:

答案 0 :(得分:0)

不确定为什么你认为有很多if / else语句。您可以使用一系列字典来完成,其中每个字典包含两个键:字段名称和选定字典。 Fieldname是NSString,选择NSNumber包装一个布尔值。然后在你的cellForRowAtIndexPath中你有类似的东西:

NSDictionary *cellData = dataArray[indexPath.row];
cell.textLabel.text = cellData[@"field_name"];
if ([[cellData@["selected"] boolValue] == YES) { ... do whatever you do when the cell is selected, like add a checkmark ... }

您也可以考虑制作一个自定义数据类来保存每个单元格的数据。您可以为标签名称和selected-ness创建属性(这将避免必须包装和解包NSNumbers以表示YES / NO)。您可以在自定义类上定义返回正确标签的方法,具体取决于所选标签。然后,您只需创建这些自定义对象的数组。

答案 1 :(得分:0)

我想你想要的是找出哪一个被选中。您可以使用数字标记选择哪一个 假设有3个字段:field0 field1 field2和二进制000中的数字。选择field1后,请将该号码标记为010。将此号码传递到下一个屏幕,然后您可以对每个字段使用&
对于field0,您可以执行010 & 000并获得结果0,这意味着未选择field0
对于field1,您可以执行010 & 010并获得选择了0的结果field1
对于field2,您可以执行010 & 100并获得未选择鬃毛0的结果field2