我有一个非常简单的GMSMarker子类,在其中我添加了一些属性来使点标记更容易识别。在我的子类中,我有以下内容:
import UIKit
class PointMarker: GMSMarker {
var layerID:String?
var featureID:String?
}
在一个使用子类的类中,我有一个呈现地图特征的函数。
func addRemoveMapPoint(featureDict:Dictionary<String, AnyObject>, visible:Bool){
if let properties = featureDict["properties"] as? Dictionary<String, AnyObject> {
let marker:PointMarker = PointMarker()
print(properties)
// Code to render on the map ...
}
}
此函数可以直接从对象实例调用,也可以从NSNotification调用。我遇到的奇怪行为是,当直接从代码(而不是通知)调用时,所有工作都按预期工作。但是,从NSNotification调用时,该函数将在创建PointMarker
实例的行上退出。
let marker:PointMarker = PointMarker()
当代码到达此行时,该函数只退出,不再执行代码。它表现得好像有一个break或return语句。我没有收到任何错误,应用程序也没有崩溃。我已验证传入参数featureDict
无论是从对象调用还是从通知调用。
有人可以解释为什么会这样吗?谢谢!