【问题标题】:iMessage Extension with Parse带有 Parse 的 iMessage 扩展
【发布时间】:2016-10-08 04:13:31
【问题描述】:

我正在尝试为我的应用构建 iMessage 扩展,但需要 Parse 来提取数据。我遇到的问题是,当我将 appDelegate 文件标记为以扩展为目标时出现错误:

'sharedApplication is unavailable.' Use view controller based solutions where appropriate instead

我猜这个问题是因为 Parse 从不初始化。有没有人遇到过这种情况或知道如何解决它?

这是我在 appDelegate 上的解析初始化:

Parse.enableLocalDatastore()

    let parseConfiguration = ParseClientConfiguration(block: { (ParseMutableClientConfiguration) -> Void in
        ParseMutableClientConfiguration.applicationId = "e81dbc81e92cedd3fbd2e11a175c39d454ca2938df"
        ParseMutableClientConfiguration.clientKey = "431a68273c2a3a60d9cx43f5e9f1b32ad15350de2"
        ParseMutableClientConfiguration.server = "http://ec2-47-xx-xx-21.us-west-2.compute.amazonaws.com:80/parse"
    })

    Parse.initialize(with: parseConfiguration)

【问题讨论】:

  • 你能发布你的解析初始化代码和你尝试从你的扩展访问你的应用程序委托的代码吗?错误是因为无法从您的扩展程序访问 sharedApplication...当人们使用扩展程序时,您的主应用程序可能/可能不会运行,因此无法访问 appDelegate。
  • 我添加了解析初始化,我不确定如何从扩展访问 appDelegate
  • 你不能。将在一分钟内发布答案。
  • 为您添加了一个答案,其中包含指向另一个 SO 答案中一个很好的解释的链接。我不使用 Parse,但使用 Firebase 成功完成了同样的事情,所以如果您有任何问题,请告诉我。

标签: ios swift xcode parse-platform imessage


【解决方案1】:

您的 iMessage 扩展程序无法访问您的主应用程序中可用的 appDelegate 实例,与here 讨论的相同问题。

要实现相同的行为,请将您共享的相同初始化代码放入 iMessage 扩展的初始 MSMessagesAppViewController 的 viewDidLoad() 方法中,或者在您首次尝试访问 Parse 之前,将调用您知道的任何其他地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2019-08-06
    • 2017-09-21
    • 2018-07-30
    相关资源
    最近更新 更多