我正在创建一个自定义的UITableViewCell视图。我有一个UITableViewCell
的方法,我已经以编程方式创建了UILabel
memberLabel
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString * const cellIdentifier = @"cellMemberId";
CPNMemberCell *cell = (CPNMemberCell *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
[[NSBundle mainBundle] loadNibNamed:@"TeamCell" owner:self options:nil];
cell = baseCell;
}
memberLabel = [[UILabel alloc] initWithFrame:CGRectMake(32, 19, 183, 27)];
[cell addSubview:memberLabel];
NSString * const test = @"test input";
memberLabel.text = test;
return cell;
}
所以这段代码效果很好。但是当我在MutableDictionary中将测试字符串值更改为包含JSON响应的字符串时,都失败了。我特意将该字符串输出到控制台日志,以确保它不是空的或其他什么。在分配期间我有一个除外 该字符串到UILabel:
NSString * const test = [members valueForKey:@"modelId"];
NSLog(@"Output: %@", test);
memberLabel.text = test;
我不明白什么是错的:响应正确地打印到控制台,UILabel
正确显示文本字符串,就像在第一个代码块中一样,但当我尝试显示带有该响应的字符串时,我有一个{{1 SIGABRT
中的异常。
答案 0 :(得分:2)
检查test
变量的数据类型是什么。使用:
NSLog(@"data type = %@", [[test class] description]);
打印data type = NSString
吗?如果没有,那就是问题。
也试试这个,
NSString* test = [ _members valueForKey:@"modelId"];
NSLog(@"Testing response in the console: %@", test);
if ([test isKindOfClass:[NSString class]]) {
memberLabel.text = test;
} else {
NSLog(@"test is not a string");
}