CocoaLumberjack mit Swift - Aufruf von Präprozessormakros

7

Ich habe angefangen, eine iOS-App mit der neuen Programmiersprache Swift zu bauen. Ich habe es geschafft CocoaPods zu verwenden und konnte den DDTTYLogger mit meinem CustomLoggerFormatter (Objective-C) in meinem AppDelegate.swift erfolgreich erstellen und an die Logger anhängen.

%Vor%

Aber das Problem ist, dass die CocoaLumberjack Bibliothek Präprozessormakros für die Loggermethoden wie DDLogVerbose(@"..")

verwendet

Was in DDLog.h definiert ist:

%Vor%

Gibt es eine Problemumgehung, um Präprozessordefinitionen in Swift arbeiten zu lassen? Oder hat jemand etwas Ähnliches mit mehr Erfolg versucht?

    
Prine 10.06.2014, 15:03
quelle

3 Antworten

12

Okay, ich habe gerade eine Lösung gefunden. Eine Objective-C Wrapper-Klasse schreiben, die die Präprozessoren aufruft und Methoden zum Aufruf anbietet.

Hoffentlich wird dies anderen Menschen helfen, die sich den gleichen Problemen gegenübersehen.

Ich habe zuerst eine Header-Datei erstellt:

%Vor%

Mit der entsprechenden Implementierung:

%Vor%

Wichtig ist, dass Sie die Datei DDLogWrapper.h zur Datei ProjectName-Bridging-Header.h hinzufügen und dann in Swift den DDLogWrapper instanziieren und die Methoden logVerbose, logError, logInfo. aufrufen können.

Mit folgendem Code konnte ich eine Log-Anweisung erstellen:

%Vor%     
Prine 10.06.2014, 15:24
quelle
5

Ich habe einen schnellen Wrapper für CocoaLumberjack erstellt, der alles gut kapselt.

%Vor%     
stigi 16.08.2014 21:45
quelle
4

Ab 2.0.0beta4 enthält CocoaLumberJack eine CocoaLumberJack.swift -Datei, die die Integration in Swift-Projekte wirklich erleichtert.

Sie verwenden eine globale Variable defaultDebugLevel , um die DDLogLevel festzulegen, und Sie können schnelle grundlegende Makros vorkompilieren, um sie an Ihre Bedürfnisse anzupassen.

%Vor%     
apouche 28.01.2015 15:20
quelle

Tags und Links