Es wird versucht, die Telefonnummer aus CNContacts abzurufen. Ich rufe einen Contact-Picker-View-Controller auf, und wenn der Benutzer mehrere Kontakte auswählt, erstelle ich eine Nachricht, die View-Controller erstellt. Ich muss ein Array von Strings erstellen, die weitergeleitet werden, wenn die Empfänger der Nachricht den View-Controller erstellen. Fehler kommt aus der folgenden Zeile ... contactsPhoneNumber.append(phoneNumber)
Der Typ '[String: Any Object]' kann nicht in den erwarteten Typ 'String' konvertiert werden.
func AddFriendTapped() {
let contactPickerViewController = CNContactPickerViewController()
contactPickerViewController.delegate = self
presentViewController(contactPickerViewController, animated: true, completion: nil)
}
func contactPicker(picker: CNContactPickerViewController,didSelectContacts contacts: [CNContact]) {
//check if phone can send texts, if so, continue
if !MFMessageComposeViewController.canSendText(){
let composeVC = MFMessageComposeViewController()
composeVC.messageComposeDelegate = self
//must get phone number strings from CNContact
let phoneNumberKey = [CNContactPhoneNumbersKey]
for contact in contacts {
var phoneNumber = contact.dictionaryWithValuesForKeys(phoneNumberKey)
contactsPhoneNumber.append(phoneNumber)
}
composeVC.recipients = contactsPhoneNumber
composeVC.body = "Hi, test message"
// Present the view controller modally.
dismissViewControllerAnimated(true) {
self.presentViewController(composeVC, animated: true, completion: nil)
}
}
}
func messageComposeViewController(controller: MFMessageComposeViewController,
didFinishWithResult result: MessageComposeResult) {
// Check the result or perform other tasks.
// Dismiss the mail compose view controller.
controller.dismissViewControllerAnimated(true, completion: nil)
}
In welcher Zeile tritt der Compilerfehler auf? – luk2302
'var phoneNumbers = contact.phoneNumbers', kein 'dictionaryWithValuesForKeys'. Das sollte dir auch zeigen, dass 'phoneNumbers' ein Array ist – Sulthan
Die Fehlermeldung besagt, dass der Wert, der' phoneNumber' zugewiesen wird, ein Wörterbuch ist (welches *** Wörterbuch ** WithValuesForKeys * impliziert) und nicht die erwartete Zeichenkette – vadian