相关疑难解决方法(0)

用Swift语言替换#ifdef

在C/C++/Objective-C中,您可以使用编译器预处理器定义宏.此外,您可以使用编译器预处理器包含/排除代码的某些部分.

#ifdef DEBUG
    // Debug-only code
#endif
Run Code Online (Sandbox Code Playgroud)

Swift中有类似的解决方案吗?

xcode preprocessor preprocessor-directive swift

697
推荐指数
15
解决办法
23万
查看次数

如何在Swift中使用Crashlytics登录?

文章介绍如何使用Crashlytics在Objective-C登录.但是,在完成将Crashlytics和Fabric属性引用到我的项目中的安装步骤之后,我似乎无法访问该方法.

查看Crashlytics.h文件,我可以看到它使用编译器标志定义:

#ifdef DEBUG
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#endif
Run Code Online (Sandbox Code Playgroud)

这个块似乎根据编译器标志包装CLSNLogCLSLog函数.

所以,我想我只是直接去源,我试图直接从swift文件中引用CLSLog.仍然没有运气:

我的桥接,Header.h:

#import <Crashlytics/Crashlytics.h>
Run Code Online (Sandbox Code Playgroud)

Log.swift:

import Foundation
import Fabric
import Crashlytics

func Log(message: String) {
    NSLog("%@", message)
    CLS_LOG("%@", message)
    CLSLog("%@", message)
}
Run Code Online (Sandbox Code Playgroud)

Log函数中的最后两行抛出错误Use of unresolved identifier.除日志记录功能外,Crashlytics崩溃报告工作正常.根据这篇文章,已经实现了对Swift的日志记录支持.

至于版本,我正在运行最新版本的Fabric/Crashlytics(12月发布,在本文发布时).

(有趣的是,我可以看到/使用CLSLogv()...)

有没有人知道合并CLS_LOG用于Swift项目的正确方法?

logging ios crashlytics swift

37
推荐指数
4
解决办法
2万
查看次数