欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

使用literal语法格式化字符串

发布时间:2024/4/14 编程问答 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 使用literal语法格式化字符串 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

支持arm64之后,格式化字符串的时候会遇到一些问题,主要与NSInteger的定义有关:

 

#if __LP64__ || (TARGET_OS_EMBEDDED && !TARGET_OS_IPHONE) || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64typedef long NSInteger;typedef unsigned long NSUInteger;#elsetypedef int NSInteger;typedef unsigned int NSUInteger;#endif

 

也就是说在64位下,对NSInteger格式化字符串的时候,需要使用%ld, 而在32位的情况下,需要用%d.

一种解决方法是进行强制类型转换。

 另外一种呢,是利用literal语法转成NSNumber*之后进行字符串的格式化。

例如:

 

NSInteger value = 6;NSLog(@"%@", @(value));NSString* test = [NSString stringWithFormat:@"%@", @(value)];

 

实际上就是转为NSNumber对象然后进行格式化,缺点当然就是多了一次装箱的过程啦, 不过代码写起来就简单方便多了,尤其是在资源文件中给出字符串的时候不需要苦恼究竟该用%d还是%ld.

转载于:https://www.cnblogs.com/agger0207/p/4472158.html

超强干货来袭 云风专访:近40年码龄,通宵达旦的技术人生

总结

以上是生活随笔为你收集整理的使用literal语法格式化字符串的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。