我有一个混合的Xcode项目。我的appDelegate是用Objective-C写的,而我的控制器部分是用Swift写的。在那个项目中可以使用XCGLogger吗?如果是,如何在appDelegate中初始化XCGLogger (例如- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions)?
发布于 2019-03-01 12:34:10
我发现并遇到了同样的问题,希望合并到一个混合的Swift+Objective-C项目中。幸运的是,我找到了这个PR https://github.com/DaveWoodCom/XCGLogger/pull/122,它有助于解决问题。
但是为了check out his PR,我们需要做一些改变:
@objc public class XCGLogWrapper: NSObject {
@objc public static func log(_ level: LogLevel = LogLevel.debug, functionName: String = #function, fileName: String = #file, lineNumber: Int = #line, logMessage: String) {}请注意 level 参数的省略。
===
Explanation:
因此,从XCGLogWrapper的这个静态函数
static XCGLogWrapper.log(_:functionName:fileName:lineNumber:logMessage:)将在Objective-C中转换为:
[XCGLogWrapper log:level functionName: @(__PRETTY_FUNCTION__) fileName: @__FILE__ lineNumber: __LINE__ logMessage: message ]===
有关更完整的答案,请查看我在PR https://github.com/DaveWoodCom/XCGLogger/pull/122#issuecomment-468136786上的评论
希望它能帮上忙!
https://stackoverflow.com/questions/33736306
复制相似问题