如何在字典中然后在数组中保存文本字段数据?

时间:2015-09-04 10:25:01

标签: ios objective-c uitextfield nsdictionary

一旦用户在UITextfield中输入文本,我首先将数据放入字典中,然后将字典添加到数组中。但由于某些原因插入数组后..它记录为空..

·H

 @interface Bread_TableViewController : UITableViewController <UITextFieldDelegate>
{    
    NSMutableArray * inventoryarray;
}

**.m**

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    // Make sure to set the label to have a ta
    NSString*textfieldclicked;

    if (textField.tag == 1) {
        textfieldclicked=@"Unit";
    } else if (textField.tag ==2) {
        textfieldclicked=@"Case";

    }

    id textFieldSuper = textField;

    while (![textFieldSuper isKindOfClass:[UITableViewCell class]]) {

        textFieldSuper = [textFieldSuper superview];

    }
    NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)textFieldSuper];

    InventoryTableViewCell *cell = (InventoryTableViewCell *)[self.tableView  cellForRowAtIndexPath:indexPath];


    NSMutableDictionary * productinfo = [[NSMutableDictionary alloc] init];

    [productinfo setObject:cell.product.text forKey:@"product"];
    [productinfo setObject:textField.text forKey:textfieldclicked];

     NSLog(@"productin %@", productinfo);      
    [inventoryarray addObject: productinfo];

}

-(IBAction)save{

    NSLog(@"array %@", inventoryarray);

}

2 个答案:

答案 0 :(得分:1)

不可见的细胞实际上不存在。只有可见的一个加上每个屏幕外的一个实际上在内存中。滚动时会创建其他数据,并从数据源中提取数据 一旦单元格被推出屏幕(+1单元格),它将从层次结构中删除并添加到重用池中。

TL; DR:您无法循环显示屏幕外单元格,因为它们不存在。如果要访问每个项目的数据,请在数据源中执行此操作。

答案 1 :(得分:0)

  1. alloc-init要添加对象的数组。
  2. textFieldDidEndEditing方法之外执行字典的alloc-init,以及viewDidLoad
  3. 中可见的范围

    喜欢

           @interface yourViewController ()
                @property (strong, nonatomic) NSMutableDictionary * product info;
    
            - (void)viewDidLoad {
            self.productinfo = [[NSMutableDictionary alloc] init];
            }