ios – 如何在应用首次加载时运行功能

ios – 如何在应用首次加载时运行功能,第1张

概述我正在尝试在 Swift中编写一个简单的待办事项列表,它将列表存储为字符串数组,然后在应用程序加载时从内存中调用它. 我有以下代码: var itemList = [String]()func loadData() -> [String] { var arr = [String]() if NSUserDefaults.standardUserDefaults().objec 我正在尝试在 Swift中编写一个简单的待办事项列表,它将列表存储为字符串数组,然后在应用程序加载时从内存中调用它.

我有以下代码:

var itemList = [String]()func loadData() -> [String] {    var arr = [String]()    if NSUserDefaults.standardUserDefaults().objectForKey("storedData") != nil {        arr = NSUserDefaults.standardUserDefaults().objectForKey("storedData")! as! [String]    }    else {        arr = ["nothing to do..."]    }    return arr}func saveData(arr: [String]) {    NSUserDefaults.standardUserDefaults().setobject(arr,forKey: "storedData")}

我遇到的问题是在何处调用loadData().这是一个具有两个视图控制器的应用程序(一个用于列表,一个用于添加项目设置),因此如果我在主视图控制器的vIEwDIDLoad()中放置loadData()调用,则从内存中调用该数组每次切换回主视图控制器时(并覆盖).

在应用程序启动时,最好的地方在哪里调用它以便它只加载一次?

解决方法

the array is called back in from memory (and over-written) every time I switch back to the main vIEw controller.

编号vIEwDIDLoad仅在应用启动时加载一次.每次vIEwcontroller更改时,都会调用vIEwWillApprear和vIEwDIDAppear.

您还可以使用if let使代码更紧凑:

if let storedData = NSUserDefaults.standardUserDefaults().objectForKey("storedData") as! [String]{     arr = storedData  }

但是如果你想确保只加载一次,你可以将它放在applicationDIDFinishWithOptions方法的AppDelegate文件中.

但是你必须在AppDelegate文件中创建一个可以从vIEwController访问的变量.

总结

以上是内存溢出为你收集整理的ios – 如何在应用首次加载时运行功能全部内容,希望文章能够帮你解决ios – 如何在应用首次加载时运行功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存