gpt4 book ai didi

ios - 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因 : '-[__NSDictionaryI sizeWithFont:constrainedToSize:lineBreakMode:]

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:31:10 27 4
gpt4 key购买 nike

我是一名新手程序员。已经晚上试图解决问题,但没有奏效。我正在尝试根据信息内容动态更改单元格的大小。以身作则,但我的程序启动死了。出现错误:

 'Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[__NSDictionaryI sizeWithFont:constrainedToSize:lineBreakMode:]"

我做错了什么?这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
}

NSDictionary *newsItem = [news objectAtIndex:indexPath.row];

cell.textLabel.text = [newsItem objectForKey:@"title"];

cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;

cell.detailTextLabel.text = [newsItem objectForKey:@"pubDate"];
return cell;
}


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText = [news objectAtIndex:indexPath.row];
UIFont *cellFont = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
CGSize constraintSize = CGSizeMake(320.0f, MAXFLOAT);

CGSize labelSize = [cellText sizeWithFont:cellFont
constrainedToSize:constraintSize
lineBreakMode:UILineBreakModeWordWrap];

return labelSize.height + 20.0f;
}

最佳答案

您的 news 数组中似乎包含字典,而不是字符串。所以在 tableView:heightForRowAtIndexPath: 中你的 NSString* cellText 实际上是一个 NSDictionary*

您只需要在 objectAtIndex: 之后添加一个 objectForKey: 调用,如下所示:

NSString *cellText = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];

关于ios - 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因 : '-[__NSDictionaryI sizeWithFont:constrainedToSize:lineBreakMode:],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346879/

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