无法在 viewDidLoad 中调用函数 [关闭]
Posted
技术标签:
【中文标题】无法在 viewDidLoad 中调用函数 [关闭]【英文标题】:Can't call a function in viewDidLoad [closed] 【发布时间】:2018-01-17 13:58:44 【问题描述】:我在控制器中创建了这个函数
func addMarker(place:EClass)
guard let coordinates = place.location else
return
self.destination = coordinates
// clear current marker
marker.map = nil
marker.position = coordinates
marker.title = place.name
marker.map = mapView
mapView.selectedMarker = marker
现在我正试图在我的 viewDidLoad 中调用它,因为我想在我的 mapView 中添加一些标记
override func viewDidLoad()
super.viewDidLoad()
print(categories as Any)
guard let currentUser = Auth.auth().currentUser else
return
tableView.dataSource = self
tableView.delegate = self
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "hh:mm"
print(dateFormatter.string(from: NSDate() as Date))
mapView.isMyLocationEnabled = true
locationManager?.startUpdatingLocation()
//HERE
let srt = sortedArray
for category in categories!
addMarker(place: srt)
但我收到错误“使用未解析的标识符'addMarker'”,为什么?我该如何解决?
【问题讨论】:
通过查看函数你有一个额外的紧花括号 在您的代码 EClass 类型中是“srt”变量吗?似乎 sortedArray 是数组,所以它必须是 [EClass] ? 因排版错误关闭 @Krunal 我的意思是 func addMarker(place:[EClass]) ... 如果 sortedArray 是数组 【参考方案1】:您的addMarker
有一个额外的括号。
func addMarker(place:EClass)
guard let coordinates = place.location else
return
self.destination = coordinates
// clear current marker
marker.map = nil
marker.position = coordinates
marker.title = place.name
marker.map = mapView
mapView.selectedMarker = marker
【讨论】:
而不是回答你应该标记为关闭的问题 这是一个完全正确的问题,每个人都至少遇到过一次。 对!没注意,谢谢 OP 有没有读过我的 cmets 哈哈 :( @AlejandroIván 阅读了帮助页面,尤其是在这个问题下的摘录作为最接近的原因。每个人都可能至少发生过一次印刷错误,但解决有关印刷错误的问题对未来的读者来说根本没有用,因此它们被认为是题外话以上是关于无法在 viewDidLoad 中调用函数 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS8 的 viewDidLoad() 中调用此函数
iOS presentViewController 不调用 viewDidLoad
用函数停用在 viewdidload 中声明的 nslayoutconstraint
UIView核心动画无法在viewdidLoad方法中工作?
viewDidLoad 函数未在 Xcode 6.2 swift 应用程序中调用,但在 OS X 上的 Xcode 6.4 swift 应用程序中调用