使用literal语法格式化字符串
生活随笔
收集整理的這篇文章主要介紹了
使用literal语法格式化字符串
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
支持arm64之后,格式化字符串的時(shí)候會(huì)遇到一些問(wèn)題,主要與NSInteger的定義有關(guān):
?
#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?
也就是說(shuō)在64位下,對(duì)NSInteger格式化字符串的時(shí)候,需要使用%ld, 而在32位的情況下,需要用%d.
一種解決方法是進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。
?另外一種呢,是利用literal語(yǔ)法轉(zhuǎn)成NSNumber*之后進(jìn)行字符串的格式化。
例如:
?
NSInteger value = 6;NSLog(@"%@", @(value));NSString* test = [NSString stringWithFormat:@"%@", @(value)];?
實(shí)際上就是轉(zhuǎn)為NSNumber對(duì)象然后進(jìn)行格式化,缺點(diǎn)當(dāng)然就是多了一次裝箱的過(guò)程啦, 不過(guò)代碼寫(xiě)起來(lái)就簡(jiǎn)單方便多了,尤其是在資源文件中給出字符串的時(shí)候不需要苦惱究竟該用%d還是%ld.
轉(zhuǎn)載于:https://www.cnblogs.com/agger0207/p/4472158.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪(fǎng):近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的使用literal语法格式化字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sdutoj 2624 Contest
- 下一篇: 【转】Java 枚举7常见种用法