objective-c 和 swift 中的不同格式掩码

Different format mask in objective-c and swift

我有一个程序有两个库。一个在 Objective-C 中,一个在 Swift 中。

我从我的网络服务器获取格式掩码并在第一个和第二个库中设置格式掩码。

我使用了第一个库 NSNumberFormatter,所以预期的格式掩码是:

 #.#0 mm

但是第二个更新为 swift,他们现在使用 String.init(格式:),所以预期格式是:

%1.2f mm

为什么 swift 使用不同的格式掩码以及如何将一种格式转换为另一种格式?

您不能将一个转换为另一个。您可能应该向库的作者提出问题,因为这是一个重大更改。

NSNumberFormatter 使用的规则集与 String(format:) 完全不同。此外,NumberFormatter 已本地化。小数点 . 是根据用户区域设置选择 ., 的模式。 String(format:) 中的 . 是文字 ..

与 Swift 或 Obj-C 无关。两种 API 均以两种语言提供。