gpt4 book ai didi

ios - UITableView 显示从 0 开始的行号

转载 作者:行者123 更新时间:2023-11-28 21:59:52 27 4
gpt4 key购买 nike

在为真实手机编译项目时出现此错误。

format specifies type 'long' but the argument has type 'int'

在模拟器上一切正常。

如果将“%d”替换为“%ld”,我会得到:

format specifies type 'int' but the argument has type 'long'

在这段代码中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
if (cell) {
cell.textLabel.text = [NSString stringWithFormat:@"page %d", indexPath.row+1]; // <-
}
return cell;
}

我该如何解决?

最佳答案

indexPath.row 是一个 NSInteger。这将是 32 位的 32 位编译或 64 位的 64 位编译。当我在 Xcode 中遇到此错误时,消息说在格式字符串中使用 %ld 并将该值转换为 long。

cell.textLabel.text = [NSString stringWithFormat:@"page %ld", (long)(indexPath.row+1]);

这解决了 32 位和 64 位版本的问题。不要转换为 int,因为在 64 位构建中,这会将 64 位值缩小为 32 位。

如果使用 NSUInteger,请使用 %lu 作为格式并转换为无符号长整型。

This question还有其他一些选择。

关于ios - UITableView 显示从 0 开始的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25391803/

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