gpt4 book ai didi

objective-c - 由于 SIGABRT 异常,无法更改方法中的 UILabel 文本。出了什么问题?

转载 作者:行者123 更新时间:2023-11-28 22:45:20 27 4
gpt4 key购买 nike

我正在创建自定义 UITableViewCell View 。我有一个用于 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 响应的字符串时,所有操作均失败。我专门将该字符串输出到控制台日志,以确保它不为空或其他任何内容。我在分配期间有一个异常(exception)该字符串到 UILabel:

NSString * const test = [members valueForKey:@"modelId"];
NSLog(@"Output: %@", test);
memberLabel.text = test;

我不明白哪里出了问题:响应正确地打印到控制台,UILabel 正确显示文本字符串,就像在第一个代码块中一样,但是当我尝试显示带有该响应的字符串时,我有一个main 中的 SIGABRT 异常。

最佳答案

检查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");
}

关于objective-c - 由于 SIGABRT 异常,无法更改方法中的 UILabel 文本。出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13353845/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com