簡體   English   中英

Swift格式化本地化字符串

[英]Swift Formatting Localized Strings

我們使用OneSky來翻譯字符串。 我們在字符串文件中使用位置說明符。 我遇到的問題是在字符串中使用%s時。

我有一個字符串: "dist_unit_mask" = "%1$s %2$s"; 我從Localization.strings文件中讀取並嘗試格式化: String(format: NSLocalizedString(@"dist_unit_mask", comment: @"Distance and Units"), dist, unit)

這會導致應用程序崩潰,但是當我將字符串更改為"dist_unit_mask" = "%1$@ %2$@"; ,該應用程序不會崩潰。 使用$s而不是%@時,可能導致應用崩潰的原因是什么? 從OneSky下載后,我不想修改字符串文件。

%s格式(帶或不帶位置說明符)需要一個C字符串 ,即指向NUL終止的char序列的指針,而不是Swift字符串。

如果你真的必須保持%s格式

String(format: NSLocalizedString(...),
    (dist as NSString).cStringUsingEncoding(NSUTF8StringEncoding),
    (unit as NSString).cStringUsingEncoding(NSUTF8StringEncoding))

應該管用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM