Objc中格式化數字的技巧

丟的錢找到了發表於2018-09-27

在平常的開發中,數字格式化為字串放到容器中是一個很常見的場景.但objc的方法要寫的都太長了(尤其是引數多的時候),經常是要麼出現巨長的一段([container setObject:[NSString stringWithFormat:@"%ld",(NSUInteger)100] forKey:key]),要麼為了適配32位精度丟失(Implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'int')。

偶然發現NSValue的一個屬性 => @property(readonly, copy) NSString *stringValue;
解釋是這樣的:

Summary:
The number object's value expressed as a human-readable string.
Discussion:
The string is created by invoking descriptionWithLocale: where locale is nil.

於是上面的兩個問題就可以這麼做: container[key] = @(100).stringValue

相關文章