在平常的開發中,數字格式化為字串放到容器中是一個很常見的場景.但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