变量仅用于在单元测试中保持实例处于活动状态,收到"only written to but never read"警告



在这里,我正在使用代码的快速单元测试部分,我声明了容器变量以使其在弱Scpoed闭包之外保持活动状态。然后我收到了警告...

describe("foo") {
it("bar") {
// warning: variable "container" was written to, but never read
var container: NSFPrioritizedDelegateContainer?
let result = weaklyScoped(NSObject()) {
container = NSFPrioritizedDelegateContainer.init(delegates: [$0], weakRef: true)
}
expect(result).to(beNil())
}
}

"弱范围"功能也很简单

func weaklyScoped<T: AnyObject>(_ v: @autoclosure () -> T, action: (T) throws -> ()) rethrows -> T? {
weak var weakValue: T?
do { // optionally autoreleasepool
let value = v()
try action(value)
weakValue = value
}
return weakValue
}

如何删除警告并使容器在弱范围闭包之外保持活动状态?

_ = container

这样您就可以无害地读取其值。

相关内容

最新更新