使用literal语法格式化字符串
生活随笔
收集整理的這篇文章主要介紹了
使用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语法格式化字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sdutoj 2624 Contest
- 下一篇: 【转】Java 枚举7常见种用法