使用 ARC 将 NSUInteger 转换为字符串 [重复]
Posted
技术标签:
【中文标题】使用 ARC 将 NSUInteger 转换为字符串 [重复]【英文标题】:Convert NSUInteger to string with ARC [duplicate] 【发布时间】:2014-05-25 16:59:56 【问题描述】:我正在尝试将 NSUInteger 转换为字符串,以便打印消息。通过搜索,我似乎需要使用 stringWithFormat,但我收到一个错误,即 ARC 不允许使用隐式强制转换。
这是有问题的行:
NSString *text = [[NSString stringWithFormat: (@"%li", NSUInteger)];
我尝试在没有帮助的情况下将格式说明符更改为 %lu。
谢谢。
【问题讨论】:
试试 [NSString stringWithFormat: @"%li",unsignedinteger]; 为什么是括号?您要格式化的值在哪里? @matt - 重复错误。这个问题归结为无效括号的问题,而不是类型转换的问题。 @rmaddy 副本显示了要使用的代码行的完全正确形式 @matt 但这是一个不同的问题。仅仅因为答案相似并不会使其成为重复的问题。 【参考方案1】:你可能有一个 NSUInteger 类型的变量,类似于
NSUInteger myNumber;
然后你可以把它转换成这样的字符串:
NSString *text = [NSString stringWithFormat:@"%li", myNumber];
我现在更喜欢的一个解决方案是:
NSString *text = [NSString stringWithFormat:@"%@", @(myNumber)];
这有助于避免编译错误数字格式代码的警告(经过很长时间我仍然对它们感到困惑)。
【讨论】:
我确实在变量中有一个 NSUInteger,但该行给我的错误是“ARC 下不允许 NSUInteger 的隐式转换”。您的解决方案是我在网上找到的,但对我不起作用。 去掉括号。 @rmaddy 谢谢。我复制粘贴了原始代码并没有注意到它们。 @tangobango 立即尝试。我已经更新了代码。 @maddy 解决了。谢谢。添加括号是我在网上找到的,在这个想法失败后没有删除它们。以上是关于使用 ARC 将 NSUInteger 转换为字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
NSInteger 和 NSUInteger 在混合的 64 位 / 32 位环境中
int 或 NSInteger 到 NSUInteger 用于索引