#objective-c #logging #swift3
#objective-c #ведение журнала #swift3
Вопрос:
Я использую последнюю версию pod 'CocoaHTTPServer', '~> 2.3'
и xcode версии 8.1 beta (8T29o) и swift 3.0
Когда я устанавливаю этот модуль, я получаю эту ошибку при HTTPLogError (и другом методе HTTPLoging.h).
/Volumes/app/Project_ios/Pods/CocoaHTTPServer/Extensions/WebDAV/DAVResponse.m:102:9: Implicit declaration of function 'LOG_OBJC_MAYBE' is invalid in C99
Комментарии:
1. У меня тоже есть такая же проблема, и она не решена. Что я сделал, так это удалил все функции cocoa lumber jack в модуле cocoahttpserver (что не очень хорошо). Проблема, которую я подозреваю, заключается в том, что cocoalumberjack поддерживает только xcode 8 и swift 3. Обратная совместимость предназначена для xcode 7.3 и swift 2.3 .
Ответ №1:
Я выполнил следующие шаги для решения проблемы:
Шаг 1: измените #import "DDLog.h"
на #import <CocoaLumberjack/CocoaLumberjack.h>
в файле HTTPLogging.h
Шаг 2: замените все LOG_OBJC_MAYBE
на HTTP_LOG_OBJC_MAYBE
и все LOG_C_MAYBE
на HTTP_LOG_C_MAYBE
в файле HTTPLogging.h
Шаг 3. добавьте следующий макрос в файл HTTPLogging.h
#define HTTP_LOG_OBJC_MAYBE(async, lvl, flg, ctx, frmt, ...)
do{ if(HTTP_LOG_ASYNC_ENABLED) LOG_MAYBE(async, lvl, flg, ctx, nil, sel_getName(_cmd), frmt, ##__VA_ARGS__); } while(0)
#define HTTP_LOG_C_MAYBE(async, lvl, flg, ctx, frmt, ...)
do{ if(HTTP_LOG_ASYNC_ENABLED) LOG_MAYBE(async, lvl, flg, ctx, nil, __FUNCTION__, frmt, ##__VA_ARGS__); } while(0)
Надеюсь, мой опыт может помочь.