2016-11-09 81 views
0

我從AddressBook.frameworkABRecordCopyValue方法中檢索了一些字符串,方法是將返回值takeRetainedValue()作爲String對象進行轉換。如何擺脫Swift字符串中的「不間斷空格」?

let unmanagedFirstNameProperty = ABRecordCopyValue(person, kABPersonFirstNameProperty) 
if unmanagedFirstNameProperty != nil { 
    contactFirstName = unmanagedFirstNameProperty!.takeRetainedValue() as? String 
} 

let formattedName:String = contactFirstName.replaceOccurrences(of: " ", with: "") 
print(formattedName) 

我想通過調用replaceOccurrences(of:with:)方法擺脫這種String物體內部的空間,但不工作(的空間仍然存在後,我把這種方法),我被蘋果告訴框架參考這通常是因爲字符串編碼,包含我聽到很多關於「非休息空間」,但我不知道如何使一個「非休息空間」進入一個正常的空間。這甚至有可能嗎?如果是這樣,StringreplaceOccurrences(of:with:)方法兼容的最佳方法是什麼?

回答

2

在你的代碼中,你有什麼contactFirstName.replaceOccurrences(of: " ", with: "")是用選項鍵輸入的空格符?如果您按住選項鍵輸入空格,則應該得到一個不間斷的空格。

然後,您可以用普通空格或空字符串替換它,如果您願意。

+0

謝謝!有效!我不希望解決方案像這樣簡單,說實話:) –

+0

最好使用''\ u {00A0}'',所以它不僅僅看起來像一個普通的空間 – Alexander

+0

哪一種方式如果你想讓代碼可讀,它就需要一個評論(除非你確信所有讀代碼的人都知道00A0是什麼。 –