Objective- C Pod неправильно читает код из файлов .swift - PullRequest
0 голосов
/ 20 февраля 2020

Я использую модуль Obj C в своем проекте Swift.

Я импортирую библиотеку в свой файл .swift.

В проекте Obj C есть Delegate и DataSource.

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

reason: ''numberOfContacts' Not implemented'

Похоже, модуль Obj C не читает реализованные методы в моем файле .swift.

Он выполняет следующую строку:

- (NSInteger)mev_horizontalContactsNumberOfContacts
{
    if ([_dataSource respondsToSelector:@selector(numberOfContacts)]) {
        return [_dataSource numberOfContacts];
    } else {
        NSAssert([_dataSource respondsToSelector:@selector(numberOfContacts)], @"'numberOfContacts' Not implemented");
        return 0;
    }
}

Это стручок: https://github.com/manuelescrig/MEVHorizontalContacts

1 Ответ

0 голосов
/ 20 февраля 2020

Проверьте, имеет ли ваш файл pod use_frameworks!, если Да, тогда будет работать только импорт YOUR_OBJC_SDK.

// Podfile
use_frameworks!
pod 'YOUR_OBJC_SDK'

Если у него нет use_frameworks!, то вам может понадобиться добавьте Bridging-Header к import всем ObjectiveC фреймворкам.

Перейти к Swift Compiler - Code Generation в вашем проекте Настройки сборки . Добавьте путь к файлу заголовка моста рядом с Objective C Bridging Header из папки проекта root. Это должен быть Your_Project/YOUR_Bridging-Header.h файл.

...