当前位置: 首页 > 面试题库 >

在启动第二个功能之前,如何等待功能在iOS / Swift上结束

后凯捷
2023-03-14
问题内容

我基本上必须使用在我的viewDidLoad中调用的方法。第一个获取用户的搜索首选项,并将首选项保存到顶部的变量中。之后,我想在第二个函数中访问并使用这些变量。但是现在,当我想在第二个函数中访问变量时,变量始终为零。

我该如何调整我的viewDidLoad,以便第二个功能仅执行一次并且我的数据请求已成功执行?

var searchLocation = String()
var searchLocationCoordinates = [String:Double]()
var searchRange = Int()


override func viewDidLoad() {
    super.viewDidLoad()

    // Gets the user's search preference
    getTheSearchLocationAndRange()

    // Loads the data from the database
    loadDataFromDatabase()
}

到目前为止,我已经阅读了有关dispatch_asynch或完成处理程序的内容。也许有人可以发布一些我可以在viewDidLoad中使用的代码并使它正常工作?


问题答案:

好吧,我找到了解决方案。我基本上在第一个函数的末尾调用了该函数。

所以基本上:

    var searchLocation = String()
    var searchLocationCoordinates = [String:Double]()
    var searchRange = Int()


    override func viewDidLoad() {
        super.viewDidLoad()

        // Gets the user's search preference
        getTheSearchLocationAndRange()
    }

    func getTheSearchLocationAndRange() {
    // Code for getTheSearchLocationAndRange()

    loadDataFromDatabase()
    }

    func loadDataFromDatabase(){
    // Code for loadDataFromDatabase()
    }


 类似资料:
  • 问题内容: 我有一个JavaScript函数,该函数使用jQuery发出两个连续的Ajax请求。我想确保在调用第二个函数之前已加载第一个请求。有办法吗? 问题答案: 在选项中指定,或在第一个调用的回调中进行第二个ajax 调用。

  • 问题内容: 我正在做一些单元测试。测试框架将页面加载到iFrame中,然后对该页面运行声明。在每个测试开始之前,我创建一个,将iFrame的事件设置为call ,设置iFrame的事件,并返回promise。 因此,我可以调用,它将在执行任何操作之前等待页面加载。 我在测试中的所有地方都使用了这种模式(不只是用于加载URL),主要是为了允许对DOM进行更改(例如,点击按钮,然后等待divs隐藏和显

  • 问题内容: 我有以下 我有一个运行一些ajax的函数,然后根据ajax是否成功返回true或false。我从代码的多个位置调用了这个ajax函数。 因为该函数在ajax完成之前结束,所以它总是返回false。如何避免这种情况? 我读到一些建议我在函数中执行的操作,然后将和函数移至我的和函数。但是,在我的方法中,我进行了大量的计算。很多代码。因此,问题在于,如果我将功能移至其他功能,那么我将复制一堆

  • 问题内容: 我有一个简单的功能,可以从Firebase加载数据。 当前,即使有要加载的数据,此函数也会始终返回。之所以这样做,是因为它永远不会执行执行完成块,在函数返回之前,它不会在数组中加载数组。我正在寻找一种使函数仅在调用完成块后才返回的方法,但不能将return放在完成块中。 问题答案: (关于此问题的变化经常出现在SO上。我永远找不到一个好的,全面的答案,因此下面尝试提供这样的答案) 你不

  • 我使用的是Firebase Cloud Firestore,然而,我认为这可能更像是JavaScript异步与同步promise返回的问题。 我正在执行一个查询以从一个集合中获取ID,然后循环该查询的结果以根据该ID从另一个集合中查找单个记录。 我怎么能等到forEach完成后才从外部promise和外部函数本身返回呢?

  • 问题内容: 我正在尝试使用某些功能 但是从后台进入应用程序后,当该应用程序处于活动状态时,该功能似乎根本无法运行。 函数看起来像这样 并使用这个变量 我错过了什么? 谢谢! 问题答案: 将创建ViewController的新实例并调用此函数。然后,由于不使用视图控制器,它将被垃圾回收/从内存中删除。您需要在使用中的实际视图控制器上调用此方法。不是它的新实例。 最好的选择是监听iOS提供的通知。 确