os_log, подсистема логирования и цель C не компилируется - PullRequest
0 голосов
/ 14 февраля 2020

Я работаю над проектом, который имеет стремительную и объективную цель C. Я хотел бы использовать os_log, но не могу понять это. Я могу заставить журнал работать в журнале по умолчанию, но если я пытаюсь создать собственный журнал, то компилятор жалуется, что не знает об OSLog в моих файлах obj C

Вот расширение swift:

import os.log

 extension OSLog {
    private static var subsystem = Bundle.main.bundleIdentifier!

     static let main = OSLog(subsystem: subsystem, category: "main")
}

В своем целевом файле C я импортирую файл -Swift.h, и он может видеть другой класс swift, который у меня есть, но все еще не видит OSLog. os_log_debug([OSLog main], "message");

получает следующие ошибки: - использование необъявленного идентификатора «Журнал»; Вы имели в виду «журнал»? - Плохой тип получателя 'void (*) (id, ...)'

Я явно что-то упускаю ...

1 Ответ

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

Попробуйте добавить @objc до extension:

@objc extension OSLog {
    private static var subsystem = Bundle.main.bundleIdentifier!

    static let main = OSLog(subsystem: subsystem, category: "main")
}

...