Ios 如何等待执行LocationService回调?
我试图执行一次定位服务。此LocationService是从另一个对象类调用的,该对象类将把位置信息添加到参数中。所有这些都将是一个对象 问题是,当我初始化对象时,填充的所有内容都少于位置数据,位置数据将在几毫秒后填充 我需要等到回调被执行,才能在使用它之前成功地生成完整的对象 因此,考虑到我有下一个“定位服务””课程 它从对象类中被称为,如下所示:Ios 如何等待执行LocationService回调?,ios,swift,callback,location,performselector,Ios,Swift,Callback,Location,Performselector,我试图执行一次定位服务。此LocationService是从另一个对象类调用的,该对象类将把位置信息添加到参数中。所有这些都将是一个对象 问题是,当我初始化对象时,填充的所有内容都少于位置数据,位置数据将在几毫秒后填充 我需要等到回调被执行,才能在使用它之前成功地生成完整的对象 因此,考虑到我有下一个“定位服务””课程 它从对象类中被称为,如下所示: class ObjectX: NSObject{ //Class variables @objc override init()
class ObjectX: NSObject{
//Class variables
@objc override init() {
let getLocation = LocationService()
getLocation.run {
if let location = $0 {
//get location parameters
}}
最后,ObjectX类从其他地方启动和使用
let getLocation = ObjectX()
//After initiate it I use the object for other purposes, but here the object is not complete, the location parameters have not been populated yet
如何在调用它的类中等待回调执行?我应该使用getLocation.PerformSelect()吗?如何解决?也许这不是解决这个问题的最佳方法,但它对我很有效 基本上,不需要在过程中创建ObjectX和设置,而是在调用之前调用位置服务,然后在回调中初始化ObjectX,然后我们可以使用在对象中接收到的位置对象为ObjectX设置位置参数 我们从初始化器中删除位置集
class ObjectX: NSObject{
//Class variables
@objc override init() {
//Setting the rest of the parameters that are not location
}}
然后初始化对象的类,初始化并运行LocationService,然后在回调中创建ObjectX并设置位置参数
let ls = LocationService()
ls.run { location in
let objectX = ObjectX()
objectX.location = location
//We can use the object here
}
let ls = LocationService()
ls.run { location in
let objectX = ObjectX()
objectX.location = location
//We can use the object here
}