Ios 如何等待执行LocationService回调?

Ios 如何等待执行LocationService回调?,ios,swift,callback,location,performselector,Ios,Swift,Callback,Location,Performselector,我试图执行一次定位服务。此LocationService是从另一个对象类调用的,该对象类将把位置信息添加到参数中。所有这些都将是一个对象 问题是,当我初始化对象时,填充的所有内容都少于位置数据,位置数据将在几毫秒后填充 我需要等到回调被执行,才能在使用它之前成功地生成完整的对象 因此,考虑到我有下一个“定位服务””课程 它从对象类中被称为,如下所示: class ObjectX: NSObject{ //Class variables @objc override init()

我试图执行一次定位服务。此LocationService是从另一个对象类调用的,该对象类将把位置信息添加到参数中。所有这些都将是一个对象

问题是,当我初始化对象时,填充的所有内容都少于位置数据,位置数据将在几毫秒后填充

我需要等到回调被执行,才能在使用它之前成功地生成完整的对象

因此,考虑到我有下一个“定位服务””课程

它从对象类中被称为,如下所示:

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
 }