相关疑难解决方法(0)

我们总是在Swift中使用[unowned self]内部封闭

在WWDC 2014会议403 中级Swift成绩单中,有以下幻灯片

在此输入图像描述

在这种情况下,发言人说,如果我们不在[unowned self]那里使用,那将是内存泄漏.这是否意味着我们应该始终使用[unowned self]内部封闭?

Swift Weather应用程序的ViewController.swift的第64行,我不使用[unowned self].但我通过使用一些@IBOutletself.temperature和更新UI self.loadingIndicator.它可能没问题,因为@IBOutlet我所定义的都是weak.但为了安全起见,我们应该一直使用[unowned self]吗?

class TempNotifier {
  var onChange: (Int) -> Void = {_ in }
  var currentTemp = 72
  init() {
    onChange = { [unowned self] temp in
      self.currentTemp = temp
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

ios automatic-ref-counting swift

455
推荐指数
7
解决办法
14万
查看次数

闭包不能隐式捕获变异的自身参数

我正在使用Firebase来观察事件,然后在完成处理程序中设置图像

FirebaseRef.observeSingleEvent(of: .value, with: { (snapshot) in
        if let _ = snapshot.value as? NSNull {
            self.img = UIImage(named:"Some-image")!
        } else {
            self.img = UIImage(named: "some-other-image")!
        }
})
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误

闭包不能隐式捕获变异的自身参数

我不确定这个错误是什么,搜索解决方案没有帮助

ios firebase swift firebase-realtime-database swift3

51
推荐指数
3
解决办法
3万
查看次数

关闭:使用未解析的标识符'self'

我正在解析Swift语言指南教程(来自Apple iOS开发库),每个章节我都会创建一个单独的swift文件.在每个文件中,我创建了多个函数,其中我隔离了它们提供的代码片段.一切都在进行,直到测试闭包的强引用周期.由于某种原因,如果包含闭包的类(用于计算属性)在函数内声明,则闭包不能看到封闭类的"self"引用.有什么想法吗?如果未在函数内声明类,则它可以正常工作.

func strongRefClosure() {
    class HTMLElement {

        let name: String
        let text: String?

        lazy var asHTML: () -> String = {
            if let text = self.text {
                return "<\(self.name)>\(text)</\(self.name)>"
            } else {
                return "<\(self.name) />"
            }
        }

        init(name: String, text: String? = nil) {
            self.name = name
            self.text = text
        }

        deinit {
            println("\(name) is being deinitialized")
        }
    }

    var paragraph: HTMLElement? = HTMLElement(name: "p", text: "hello, world")
    println(paragraph!.asHTML())
}
Run Code Online (Sandbox Code Playgroud)

swift

8
推荐指数
1
解决办法
4642
查看次数