Ich möchte in der Lage sein, eine Telefonnummer in einer Standardweise, z. nur die Ziffern (möglicherweise mit dem ‚+‘ für den Ländercode), so etwas wie diese Beispiele ...Kann ich iOS9 Contacts Framework verwenden, um eine formatierte Telefonnummer zu erhalten?
"17185555555"
"+17185555555"
"+447788888888"
... aber ich möchte in der Lage sein, in einem gut zu einem Benutzer angezeigt formatierte Weise, z
"1 (718) 555-5555"
"+1 (718) 555-5555"
"+44 (7788) 888888"
... ohne auf einen CNContactViewController zum Formatieren angewiesen zu sein.
Offensichtlich tun dies nur für US/Kanada Zahlen wäre einfach - es ist nur ein Standardformat - aber ich möchte es generisch sein, so dass es für Zahlen aus jedem Land funktionieren kann. Ich weiß, this Frage gibt eine Antwort nur für US/Can-Nummern.
Ich weiß, dass ich einen CNContactViewController verwenden könnte, um die Nummer im richtigen Format anzuzeigen, z.
let newContact = CNMutableContact()
newContact.givenName = "John"
newContact.familyName = "Smith"
newContact.phoneNumbers = [CNLabeledValue(label: CNLabelPhoneNumberiPhone, value: CNPhoneNumber(stringValue:"17185555555"))]
let contactView = CNContactViewController(forContact: newContact)
self.presentViewController(contactView, animated: true, completion: nil)
Diese die Zahl auf dem Bildschirm formatiert richtig zeigen wird, das heißt
1 (718) 555-5555
... so weiß ich, dass etwas im Rahmen kann es tun. (Dieser Ansatz funktioniert für andere Länderrufnummernformate, solange Sie der Nummer den richtigen Ländercode voranstellen - zB "+44 ...")
Von various other questions Ich weiß, dass ich die rohen Ziffern und Land bekommen kann Code aus einem CNContact, z (In Anlehnung an obigem Beispiel)
for pNumber: CNLabeledValue in newContact.phoneNumbers {
let value = pNumber.value as! CNPhoneNumber
let cc = value.valueForKey("countryCode") as? String
let digits = value.valueForKey("digits") as? String
print("cc:" + cc + ", " + digits)
}
... aber dies zeigt nur die unformatierte Zeichenfolge wieder - nicht das, was ich in diesem Fall suchen.
Jede Hilfe oder andere empfohlene Ansätze wirklich geschätzt!
scheint ein Duplikat zu sein von http://stackoverflow.com/questions/6052966/phone-number-formatting – matt
ich diese Frage sah (und wird verlinkt auf es jetzt), aber ich glaube, ich habe recht, wenn ich sage, dass das nur für US/Can Zahlen funktioniert, was ich nicht suche. – nickpharris
Ich weiß nicht, was Sie mit "das" meinen. Es gibt Antworten dort, die genau zeigen, was es dauern würde, um einen Gebietsschema-bewussten Telefonformatierer zur Verfügung zu stellen. – matt