Swift的最佳实践是什么?
选项1:
class SomeManager {
static var sharedManager = SomeManager()
var someVariable: String?
}
Run Code Online (Sandbox Code Playgroud)
然后
let something = SomeManager.sharedManager().someVariable
Run Code Online (Sandbox Code Playgroud)
选项2:
class SomeManager {
static var someVariable: String?
}
Run Code Online (Sandbox Code Playgroud)
然后
let something = SomeManager.someVariable
Run Code Online (Sandbox Code Playgroud) 我知道 ClipRRect 有额外的选项,比如自定义剪刀。但是如果我只需要一个简单的边界半径,是否有性能差异?更推荐哪一个?
我的关闭保留了它自己。它会导致捕获内部的所有其他对象。我可以使用弱引用传递这样的对象,但它并不能解决保留循环的问题。在没有保留周期的情况下使用闭包进行递归的正确方法是什么?
class Foo {
var s = "Bar"
deinit {
print("deinit") // Won't be executed!
}
}
class TestVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let foo = Foo() // Weak works, but not the right solution.
var closure: () -> Void = { return }
closure = {
print(foo.s)
if true {
return
} else {
closure()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)