0
我的視圖控制器看起來是這樣的:自由封閉拍攝的所有成員都初始化之前
class ViewController: UIViewController {
... (Optional Variables declared)
var geoLoc: CLLocationCoordinate2D?
override func viewDidLoad() {
... (Optional Variables initialized)
geocoder.geocodeAddressString(addressString) { (placemarks, error) in
self.geoLoc = placemarks?[0].location?.coordinate
}
}
}
和我收到此錯誤:
'self' captured by a closure before all members were initialized
我已經嘗試了許多死衚衕的解決方法,但根本找不到問題的原因。有什麼建議麼?
您在ViewController中創建了哪些其他屬性?所有類的屬性必須初始化,然後才能在課程中的任何位置使用自己。 – PGDev
這看起來不像你應該得到這個錯誤的地方。你確定這段代碼不在init中嗎?你有沒有實現一個自定義的'init'?這真的是錯誤出現的地方嗎?在'viewDidLoad'中看到這個錯誤是很奇怪的。 –
這是一個奇怪的行爲。 Swift應該輸出錯誤消息:在所有成員僅在初始化器中初始化之前,閉包捕獲的_'self'。似乎你省略了太多。 (例如,你的類缺少':UIViewController'。)請顯示更多可以重現你的問題的代碼。 – OOPer