Swift - проверка однозначного свойства неуправляемой адресной книги на ноль

Я относительно новичок в iOS-разработке и Swift. Но до этого момента я всегда был в состоянии помочь себе с некоторыми исследованиями стекового потока и несколькими документациями и учебными пособиями. Тем не менее, есть проблема, я не мог найти никакого решения.

Я хочу получить некоторые данные из адресной книги пользователя (например, свойство с одним значениемkABPersonFirstNameProperty). Поскольку.takeRetainedValue() Функция выдает ошибку, если этот контакт не имеет значения firstName в адресной книге, мне нужно убедиться, чтоABRecordCopyValue() Функция возвращает значение. Я попытался проверить это в закрытии:

let contactFirstName: String = {
   if (ABRecordCopyValue(self.contactReference, kABPersonFirstNameProperty) != nil) {
      return ABRecordCopyValue(self.contactReference, kABPersonFirstNameProperty).takeRetainedValue() as String
   } else {
      return ""
   }
}()

contactReference переменная типаABRecordRef!

Когда контакт адресной книги предоставляет значение firstName, все работает нормально. Но если firstName отсутствует, приложение вылетает.takeRetainedValue() функция. Кажется, что оператор if не помогает, потому что неуправляемое возвращаемое значениеABRecordCopyValue() функция не ноль, хотя имя не указано.

Я надеюсь, что смог прояснить мою проблему. Было бы здорово, если бы кто-нибудь помог мне с мозговыми волнами.