【发布时间】:2019-01-06 06:57:00
【问题描述】:
我在tableviewcell 中有一个textfield。单击按钮时,我想将文本字段中的值存储在字典中。
但是其中一个文本字段返回 nil,尽管其中有值。
NSString *sEmpty= [[NSString alloc] init];
for(int i = 0; i < 13; i++){
myProfileCell *cell = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
sEmpty = cell.tfProfileDetails.text;
if (sEmpty == nil) {
sEmpty = @"";
}
NSString *str;
switch (i) {
case 0:
str = @"first_name";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 1:
str = @"middle_name";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 2:
str = @"last_name";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 3:
str = @"profile";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 4:
str = @"email";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 5:
str = @"phone";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 6:
str = @"birth_date";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 7:
str = @"sex";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 8:
str = @"city";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 9:
str = @"bio";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 10:
str = @"address";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 11:
str = @"pincode";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
case 12:
str = @"bank_acc_type";
[_userDict setObject:sEmpty forKey:str];
sEmpty = nil;
break;
default:
break;
}
}
NSLog(@ "%@ ",_userDict);
当代码出现 case 11 (pincode) - 文本字段在 sEmpty 中存储 nil 值,但我在模拟器的所有文本字段中输入了值。 请建议我一些可能的结果,以便所有值都存储在字典中。
P.S - 如果文本字段中的值为空,则字典中的值将存储为空字符串
【问题讨论】:
-
您的整个方法都不正确。不要使用单元格来存储文本。不要迭代索引路径以获取所有单元格以获取每段文本。那永远行不通。一旦任何给定的文本字段不再是第一响应者,您就需要更新您的数据模型。
-
哦,你能通过代码告诉我正确的方法吗? @rmaddy
-
我同意@rmaddy。如果单元格超过给定数量,我什至不确定您的视图实现是否有效,因为当单元格消失(即当用户滚动表格视图时)然后重新出现时,我相当确定它的内容将为空跨度>
标签: objective-c uitableview for-loop uitextfield nsdictionary