/ / Swift Address Book, итерацията на имейлите получава errorType - ios, xcode, swift

Swift адресна книга, iterating на имейли получава errorType - ios, xcode, бърз

Xcode 6.4
Swift 1.2

Опитвам се да повторя контактите с потребители и завсеки контакт, който има имейли, повтаряйте имейлите. Проблемът е, че получавам имейла като errorType, когато го преобразувам в низ, вместо да го получавам като String обект.

Въпросът ми е, защо се случва това?
Защо EmailID не се разпознава като низ?

Това е моят код:

let allContacts = ABAddressBookCopyArrayOfAllPeople(self.addressBookRef).takeRetainedValue() as Array

for record in allContacts
{

let currentContact: ABRecordRef = record;

let emailMultiValue:ABMultiValueRef = ABRecordCopyValue(currentContact, kABPersonEmailProperty).takeRetainedValue() as ABMultiValueRef

if ABMultiValueGetCount(emailMultiValue) > 0 {
let emailAddresses: NSArray = ABMultiValueCopyArrayOfAllValues(emailMultiValue).takeUnretainedValue() as NSArray

for email :AnyObject in emailAddresses {
if let emailID = email as? String{
//EmailID is <<errorType>>
println(emailID) //actually prints the email

}

}
}

}

въведете описанието на изображението тук

редактиране:
Опитах се да заменя имейл адреса с този ред.

let emailAddresses: [String] = ABMultiValueCopyArrayOfAllValues(emailMultiValue).takeUnretainedValue() as! [String]

Но все пак получавам същата грешка.

Благодаря!

Отговори:

0 за отговор № 1

ОК, това се решава чрез итерация на индекси, а не на елементи

for i in 0..<emailAddresses.count {
let email:String = emailAddresses[i]; //email is actually a string now
}

ако някой знае така или иначе защо повтарящите се елементи създават тип грешка, аз наистина бих искал да знам