我已经有一段时间了。 我无法在其中包含实例成员的情况下调用静态函数。 我收到错误消息:
实例成员'matomoTracker'不能用于'Tracker'类型
class Tracker {
let matomoTracker:MatomoTracker
var isAllowed: Bool? //to implement based on UserSessions
required init(id: String, url: String, isAllowed: Bool) {
matomoTracker = MatomoTracker(siteId: id, baseURL: URL(string: url)!)
matomoTracker.isOptedOut = isAllowed
}
public func track(category: String, eventDescription: String) {
matomoTracker.track(eventWithCategory: "category", action: "action", name: nil, number: nil, url: nil)
}
static func dispatch() {
Tracker.matomoTracker.dispatch()
}
static func startSession() {
Tracker.matomoTracker.startNewSession()
}
}
答案 0 :(得分:0)
函数无法调用实例成员。这种功能只能使用静态或类成员。
在这里您应该使用 static let matomoTracker = MatomoTracker()
或者如果您想稍后分配matomoTracker,请使用
静态变量matomoTracker:MatomoTracker?
如果您想了解更多有关static和class的信息,请访问li
https://docs.swift.org/swift-book/LanguageGuide/Methods.html
https://docs.swift.org/swift-book/LanguageGuide/Methods.html