Ich habe angefangen eine IOS App mit der neuen Programmiersprache Swift zu erstellen. 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.CocoaLumberjack mit Swift - Aufruf von Präprozessormakros
var customLoggerFormatter = CustomLoggerFormatter()
var consoleLogger: DDTTYLogger = DDTTYLogger.sharedInstance()
consoleLogger.setLogFormatter(customLoggerFormatter)
DDLog.addLogger(consoleLogger)
Aber das Problem ist, dass die CocoaLumberjack Bibliothek Präprozessormakros für die Logger Methoden wie DDLogVerbose(@"..")
, die in der DDLog.h definiert ist, mit:
#define DDLogVerbose(frmt, ...) LOG_OBJC_MAYBE(LOG_ASYNC_VERBOSE, LOG_LEVEL_DEF, LOG_FLAG_VERBOSE, 0, frmt, ##__VA_ARGS__)
Gibt es jede Problemumgehung, um Präprozessor definiert arbeiten in Swift? Oder hat jemand etwas Ähnliches mit mehr Erfolg versucht?
Wie definieren Sie den 'ProjectName-Bridging-Header.h'? Ich habe '#import' versucht und Xcode beschwert sich 'Datei nicht gefunden' Fehler. 'DDLogWrapper.h' befindet sich im Verzeichnis' ProjektName/Application/DDLogWrapper.h'. Ich habe auch 'Application/DDLogWrapper.h' ausprobiert und das hat nicht funktioniert. Mein 'SWIFT_OBJC_BRIDGING_HEADER' Feld in' Build Settings' ist leer, aber ich habe keine Probleme, andere Module zu überbrücken. –
Dean
Pro versuchtem Editieren von [runios] (http://stackoverflow.com/users/3944596/runios) brauchst du auch '#import" DDLogMacros.h "'. – admdrew
[CocoaLumberjack unterstützt Swift & Objective-C] (https://github.com/CocoaLumberjack/CocoaLumberjack#swift-version-via-cocoapods), wenn Sie Ihre App migrieren. 'Pod 'CocoaLumberjack/Swift'' Benötigt iOS8 Minimum. Wenn Sie wie iOS mit iOS7 arbeiten, ist das kein Problem. – mriddle89