试图设置XCGLogger和接收错误:
对成员“日志”的模糊引用
我看到这个问题已经是已引发了,但我不清楚解决方案。
根据安装指南,将这个全局常量添加到AppDelegate.swift中:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let log = XCGLogger.defaultInstance()
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
log.setup(.Debug, showThreadName: true, showLogLevel: true, showFileNames: true, showLineNumbers: true, writeToFile: nil, fileLogLevel: .Debug)
return true
}然后在单个源文件中:
import XCGLogger
log.debug("A debug message")正确的用法是什么?
发布于 2016-04-28 20:17:39
这个问题相当简单。如果在log中声明AppDelegate,则生成一个实例变量。要访问它,您必须作为实例变量访问它:
(UIApplication.sharedApplication().delegate as! AppDelegate).log.debug("test")如果您想让log在任何地方都可以访问,就必须使它成为一个全局常量:
在AppDelegate中,将全局常量声明为默认的XCGLogger实例。
let log = XCGLogger.defaultInstance()
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?(不需要在AppDelegate文件中声明它,您基本上可以将它放在代码的任何地方)
或者让它成为static
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
static let log = XCGLogger()并使用以下方法访问:
AppDelegate.log.debug(...)为了解释这个矛盾引用,有一个名为log的数学函数,malloc.h文件中也有一个log函数。因为您是作为第一个参数传递一个String,而且这两个函数都不是匹配的,所以编译器警告您,它不知道要使用哪一个函数。
发布于 2016-07-29 08:22:33
此外,我认为最好创建全局常量文件并创建类似的内容(如果您已经声明了登录AppDelegate):
let LOG = (UIApplication.sharedApplication().delegate as! AppDelegate).log然后简单地使用LOG.error("error")
https://stackoverflow.com/questions/36923620
复制相似问题