あまりにも多くの文字列のクリーニングを行った後、アドレス帳から直接 CFStringRef を印刷した後、最終的に答えを見つけました。舞台裏で起こっていることは次のとおりです...
- iOS7 に連絡先を追加すると、Apple はこれを保存します: (555).555-5555 (. は実際には U00A0 または です)
- 私のアプリは、AddressBook から CFStringRef に連絡先の情報をコピーします (NSLogged の場合は . が表示されます)。
- CFStringRef は NSString にキャストされます (NSLog は現在 555\U00a0555-5555 を示しています)
\U00A0 を削除するために、このスレッドと [NSCharacterSet characterSetWithRange:(160,1)] から 3 つの回答を試しましたが、うまくいきませんでした。最終的に機能したのは、次のコード行です。
phoneNumber = [phoneNumber stringByReplacingOccurrencesOfString:@"." withString:@""];
// どこ @"。" Option+スペースバーを入力して作成されました