多个parse.com应用程序ID,以减少API请求

时间:2015-01-11 19:26:39

标签: ios xcode swift parse-platform backend

是否可以设置应用程序以使用多个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,并允许来自此视图控制器的查询与之交互替代解析应用程序?

1 个答案:

答案 0 :(得分:1)

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

CNC中 说明:您可能认为这会导致查询问题而不知道要使用哪个应用程序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方法中重置app Id非常重要,这样当您返回到父viewController时(如果您使用推送segues)查询使用正确的App Id。还要注意当应用程序进入后台时会发生什么。它需要一点努力才能使这项工作没有错误,但它绝对值得。