Структура адресной книги и контактов в iOS 8.0 и 9.0

Я пытаюсь создать приложение, которое извлекает список контактов из контактов пользователей и отображает его в пользовательском интерфейсе приложения. Я хочу поддерживать iOS 8 и iOS9. Но проблема в том, что методы платформы AddressBook устарели в iOS9, а платформа контактов не поддерживает iOS 8.0. Есть ли способ, которым я могу поддержать как 8, так и 9 для этого?

Заранее спасибо!


person user3401744    schedule 08.02.2016    source источник


Ответы (2)


Вы должны реализовать оба кода, если хотите поддерживать обе версии iOS.

Вы должны проверить версии iOS, как показано ниже, для Objective-C

NSComparisonResult order = [[UIDevice currentDevice].systemVersion compare: @"9.0" options: NSNumericSearch];
if (order == NSOrderedSame || order == NSOrderedDescending) {
    // OS version >= 9.0
    // Call contact address book function
} else {
    // OS version < 9.0
    // Call address book function
}

Для быстрого,

if #available(iOS 9.0, *) {
    // OS version >= 9.0
    // Call contact address book function
} else {
    // OS version < 9.0
    // Call address book function
}
person Varun    schedule 09.02.2016
comment
любой другой подход, который мы можем использовать? Я не хочу писать один и тот же код дважды. - person user3401744; 10.02.2016
comment
Есть один способ. Если вы поддерживаете iOS 8 и выше, вы можете использовать ABAddressBook. Это будет работать и в iOS 9. Но когда вы удалите поддержку iOS 8 в будущем, вам придется заменить ABAddressBook на CNContactStore. Лично я бы предпочел писать оба кода с расчетом на будущее. - person Varun; 10.02.2016

Помимо проверки iOS 8 и iOS 9 для вызова функций,

убедитесь, что платформа, недоступная в iOS 8, установлена ​​как Необязательная.

введите здесь описание изображения

person Ted    schedule 13.09.2016
comment
Эта необязательная вещь отсутствовала в моем проекте, спасибо, приятель :) - person Devanshu Saini; 18.09.2016