【问题标题】:Changing Core Data when app starts应用启动时更改核心数据
【发布时间】:2016-05-08 08:34:10
【问题描述】:

我正在开发一个 iOS 应用程序,它可以下载有效期为 4 小时的 xml 数据。我想检查有效性,如果需要,在我的应用启动时更新此数据。

我正在使用这个xml解析器来加载数据http://www.theappguruz.com/blog/xml-parsing-using-nsxmlparse-swift

现在我正在调用 beginParse() 并在 function didiFinishLaunchingWithOptions 中解析 AppDelegate.swift 中的数据。这是执行此后台任务的正确位置吗?

在我发布的教程中,这个人在视图控制器中执行此操作,但我想使用此解析器更新核心数据,并且我需要它在应用启动后在后台运行。

提前致谢

【问题讨论】:

    标签: ios swift networking xml-parsing


    【解决方案1】:

    做到这一点的专业方法是有一个函数(甚至是一个完整的类)来管理这个下载/解析数据并异步保存在你的核心数据中,之后,你可以通知您有新内容要加载(或者是否有错误或其他问题)的视图。

    关于在哪里调用函数,这取决于...

    如果您应该只向用户显示最新信息(例如锁定屏幕并显示“正在加载...”或类似的内容),请将调用放在第一个视图控制器中,因为这样更简单调用完成处理程序来解锁和加载数据。

    但是,如果您可以加载“旧”信息,只是为了在新内容可用时更快并刷新,我认为您可以毫无问题地调用 appDelegate。

    【讨论】:

    • 感谢您的回答。现在我已经创建了全新的类来解析和保存 xml。但是我必须检查文档以确定 contentsOfUrl(NSURL) 是否是异步的。我可以使用旧数据,所以我会在 appDelegate 中调用它
    • 以防万一,您可以查看此链接,它显示了如何发出异步请求。 kaleidosblog.com/swift-uitableview-load-data-from-json
    • 谢谢,但它使用自 iOS 9 以来已弃用的 NSURLConnection。我可能会使用 iOS 7 中引入的 NSURLSession。我的部署目标是 iOS 7,所以它会做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2012-02-17
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多