iOS
如何使用NSPredicate在Objective-C中高效执行查询
10 分
使用nspredicate查询 介绍 在本节中,您将学习如何使用nspredicate在objective c中定义查询。 随时,您都可以访问我们教程中构建的完整项目,链接在我们的 https //github com/templates back4app/ios install sdk 先决条件 在本教程中,我们将使用在 xcode 9 1 中用 objective c 创建的基本应用程序和 ios 11 要完成本教程,您需要: 在 back4app 创建的应用程序。 注意: 请遵循 https //www back4app com/docs/get started/new parse app 了解如何在 back4app 上创建应用程序。 xcode。 基本 ios 应用程序。 注意: 如果您没有创建基本应用程序,可以打开 xcode 并点击 文件 > 新建 > 项目 > ios 然后选择 应用程序 创建基本应用程序后,您就可以按照本指南进行操作。 注意: parse ios sdk 适用于 ios 7 0 或更高版本。 1 获取模板 在 https //github com/back4app/ios objective c quickstart example/archive/master zip , 并在你的项目文件夹中解压文件。 你可以使用以下命令行来完成此操作 $ curl lok https //github com/back4app/ios objective c quickstart example/archive/master zip && unzip master zip 2 打开项目模板 打开xcode。 点击 文件 >打开 文件 >打开 3\ 导航到项目文件夹并双击 quickstartobjcexampleapp xcworkspace quickstartobjcexampleapp xcworkspace 4\ 等待xcode打开项目。 3 理解差异 通常对于 objective c,您有两种构建查询的选项:使用 ‘pfquery’ 或 ‘nspredicate’。两者的工作方式相似,但根据您想使用的约束数量,使用其中一个可能更有意义。 例如,使用 pfquery 的简单查询将是: 1 \[query wherekey @"playername" notequalto @"michael yabuti"]; 2 \[query wherekey @"playerage" greaterthan @18]; 但更复杂的查询可能会变成 1 \[query wherekey @"playername" notequalto @"michael yabuti"]; 2 \[query wherekey @"playerage" greaterthan @18]; 3 \[query wherekey @"playerheight" greaterthan @180]; 4 \[query wherekey @"playerweight" greaterthan @80]; 5 \[query wherekey @"playerfavoritecolour" notequalto @"blue"]; 6 \[query wherekey @"playerislefthanded" equalto @true]; 7 \[query wherekey @"playershoesize" notequalto @42]; 8 \[query wherekey @"playerlivingstate" equalto @"arizona"]; 9 \[query wherekey @"playerlivingcity" notequalto @"springfield"]; 10 \[query wherekey @"playermothersname" equalto @"jane"]; 因此,根据每种情况,您可以选择使用 ‘nspredicate’。 使用 ‘nspredicate’ 的简单查询将是: 1 nspredicate predicate = \[nspredicate predicatewithformat @"playername != 'michael yabuti' and playerage > 18"]; 2 pfquery query = \[pfquery querywithclassname @"gamescore" predicate\ predicate]; 而更复杂的查询可能会变成: 1 nspredicate predicate = \[nspredicate predicatewithformat @"playername != 'michael yabuti' and playerage > 18 and playerheight > 180 and playerweight > 80 and playerfavoritecolour != 'blue' and playerislefthanded = true and playershoesize != 42 and playerlivingstate = 'arizona' and playerlivingcity != 'springfield' and playermothersname = 'jane'"]; 2 pfquery query = \[pfquery querywithclassname @"gamescore" predicate\ predicate]; 4 执行你的查询 然后,你可以执行你的查询 1 \[query findobjectsinbackgroundwithblock ^(nsarray objects, nserror error) { 2 if (!error) { 3 // 请求成功 4 } 5 }]; 下一步 在这一点上,你已经学会了如何开始使用 ios 应用程序。 通过浏览我们的 https //www back4app com/docs/ios/ios app template 或查看 https //docs parseplatform org/ios/guide/