【问题标题】:Multiple parse.com Application Ids, to reduce API requests多个 parse.com 应用程序 ID,以减少 API 请求
【发布时间】:2015-01-11 19:26:38
【问题描述】:

是否可以设置一个应用程序来使用多个 parse.com 应用程序。我试图找出一种方法来减少每秒请求数,并且在想,如果我使用不同的 parse.com 应用程序 ID 设置我的 iPhone 应用程序的即时消息传递部分,那么我可以同时使用它们。您必须在 appDelegate 中为项目设置应用程序 ID,如下所示:

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

        Parse.setApplicationId("AppIdString", clientKey: "ClientKeyString")
}

如果我将相同的 Parse.setApplicationId("AppIdString", clientKey: "ClientKeyString") 代码放在特定视图控制器的 viewDidLoad 方法(或类似的地方)中,它会覆盖应用程序委托中设置的应用程序 ID 并允许来自此视图控制器的查询与替代交互解析应用程序?

【问题讨论】:

    标签: ios xcode swift parse-platform backend


    【解决方案1】:

    我一直在玩这个,看来你确实可以,可以保持安静......

    -编辑- 说明:您可能认为这会导致查询不知道要使用哪个应用程序 ID 的问题,但是查询使用最近设置的任何应用程序 ID。您可以在每个视图控制器的 viewDidLoad 方法中设置单独的应用程序 ID,并且在该视图控制器中执行的任何查询都将使用该视图控制器中定义的应用程序 ID。

    您甚至可以通过在单个函数中设置多个应用程序 ID 来利用这一点。

    Parse.setApplicationId("appIdString-1", clientKey: "clientKeyString-1")
    var query = PFQuery(classname: "classname")
    query.getObjectInBackgroundWithId(.....)
    
    Parse.setApplicationId("appIdString-2", clientKey: "clientKeyString-2")
    var query2 = PFQuery(classname: "classname2")
    query2.getObjectInBackgroundWithId(.....)
    

    这可能会变得相当复杂,因此必须小心处理。让不同的视图控制器拥有自己的应用程序 ID 是最简单和有效的。

    func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    
            Parse.setApplicationId("mainAppId", clientKey: "mainClientKey")
            return true
    }
    

    然后在你的其他视图控制器中使用

    override func viewWillDisappear(animated: Bool) {
        Parse.setApplicationId("mainAppId", clientKey: "mainClientKey")
        println("leabving")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        Parse.setApplicationId("secondAppId", clientKey: "secondClientKey")
    }
    

    在 viewWillDissapear 方法中重置应用程序 ID 非常重要,这样当您返回父视图控制器时(如果您使用的是 push segues)查询使用正确的应用程序 ID。还要注意应用程序进入后台时会发生什么。使这项工作没有错误需要一点努力,但这绝对是值得的。

    【讨论】:

    • 您的查询如何知道要引用哪个应用程序 ID?好像很头疼。
    • 查询使用最近设置的应用程序 ID。您可以在每个视图控制器的 viewDidLoad 方法中设置一个单独的应用程序 ID,并且在该视图控制器中执行的任何查询都将使用该视图控制器中定义的应用程序 ID。真的一点都不头疼! :)
    • 我已经对此进行了测试并复制了您的结果。您应该发布您的评论作为答案,因为它准确地解决了原始问题的问题。
    • 会做,有几点需要注意,我会在回答中列出这些
    • 支持失败。还是让我头疼。我敢肯定对其他人有用。
    猜你喜欢
    • 2016-09-12
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多