Parse教程——如何简单地使⽤Parse在iOS应⽤创建后台服务      最近在学习Parse,但是Parse的中⽂教程⽐较少,看到这篇英⽂教程,把它翻译⼀下与⼤家共享,本⼈的英语⽔平不是很⾼,有的地⽅可能译得不好,望⼤神轻拍。。
⾸先—创建你的后台服务
在开始编写你的app前,你⾸先要做的是创建你的Parse后台,每个开发⼈员和每个app都需要⼀个不同的标识,否则你的数据和账号会和别⼈的混淆,虽然这会带来⼀些有趣的副作⽤,但是你应该使你的数据和别⼈的区别开来。
第⼀步就是访问,然后在右上⾓点击Sign Up创建⼀个新账号。
账号创建好后,你会被要求创建你的第⼀个app,每个你想要使⽤后台服务的应⽤都要单独地注册。在这⾥,我们把这个应⽤命名
为“tutorialApp”;在Parse中可能存在着很多同名的app,但是你注册的只有⼀个。
你的app创建好后,来到Dashboard页⾯,在这⾥你可以查看你app的数据,这⾥有⼀系列的操作按钮,有点像UISegmentedControl,如以下截图:
这⾥是对屏幕上⽅⼀些操作按钮的说明:
Overview:在这⾥你可以看到⼀些关于你app统计信息,如流量,推送信息,调⽤API的次数等。
Data Browser:这⾥你可以看到所有放到你后台⾥的数据。你也可以看到账号,你可以⼿动地操作数据,这⾥就像⼀个数据库编辑器。
Push Notifications:可以在这⾥向你的⽤户发送推送信息,或者向⼀个特定组发送推送信息。
Setting:你可以在这⾥设置你的app,管理它的安全性,和导出你的数据。
Parse⽰例项⽬
为了在这篇教程中创建⼀个后台服务,这⾥提供了⼀个简单的项⽬来使⼤家容易⼊⼿。你可以下载它并跟着本教程添加Parse服务。⽰例项⽬就放在github上。
git clone github/toniomg/TutorialBase
在Xcode中打开这个项⽬,编译运⾏!⾸先你会看到⼀个登陆界⾯,但⽬前为⽌,这个项⽬还没有加⼊后台服务,你很快就会完成这些功能。
在继续学习之前,先打开MainStoryboard.storyboard来看⼀下程序的结构和流程。
这个项⽬分为4个主要的视图,每个视图在storyboard中都有⾃⼰的视图控制器和视图
Log In:登陆页⾯有⽤户名和密码⽂本框,还有⼀个Sign Up按钮,在你想注册⼀个新账号的时候⽤来前往Sign Up页⾯。
Sign Up:在这个视图,⽤户输⼊⽤户名和密码,⽤来在后台服务中创建⼀个新账号。
Wall:这是这个app中的主要界⾯,这⾥⽤户可以看到其他⽤户上传的带有评论的图⽚。
Upload:在这⾥,⽤户可以上传带有评论的图⽚到照⽚墙上。
注意segue线表⽰了这个app的流向,包括绕过了Sign Up界⾯的流向。如下图所⽰:
准备Parse服务
第⼀步⾃然是要配置你的项⽬使它可以加⼊Parse服务!
下载完框架后,解压并把Parse.framework⽂件夹拖⼊你的Xcode项⽬的Framework⽂件夹内。记得勾选“Copy
<”和“”。
默认下Parse框架会加⼊到“tutorialBase”中,这也是我们期望的,然后添加其他的框架,完成后的框架列表如下:
(怎么添加框架的步骤就不说了,⽹上⼀⼤把)
下⼀步就是在app启动时注册后台服务,在AppDelegate.m⽂件中加⼊头⽂件:
#import <Parse/Parse.h>
然后,在函数didFinishLaunchingWithOptions的开头,加⼊语句:
[Parse setApplicationId:AppID clientKey:clientKey];
你会看到有错误出现了,Application ID和Client Key需要⼀个常量,但是它们现在还是空的——是时候改正了!
为了到需要的API keys,要去到Parse Dashboard(1),选择你的app(2),然后到左侧栏,复制Application ID和Client Keys(3),如下图所⽰:
(注意,我看到的界⾯与上图有的不同,我是在Settings——Application keys界⾯中到所需的App ID和Client Key的)
你可以直接把keys复制到setApplicationId⽅法中,它们只需使⽤⼀次。完成后,这个⽅法看起来和下⾯代码是相似的,只是keys有所不同:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Register our parse app with the service
[Parse setApplicationId:@"UXuHVmNRX44rcczbv1NIIHHbazteYfQU4GAJ8EOS"
clientKey:@"cqFwq5Vpb19VKPKSe1dOZJrjsQbytPzKa2bEdakx"];
return YES;
}
编译运⾏你的app!确定没有任何错误。⼀切顺利的话,意味着你的app已经绑定Parse后台服务了。你即将开始使⽤后台服务!
下⼀步就是创建⼀些⽰例对象!
创建⽰例对象
现在你的项⽬已经配置好了并连接上Parse,现在花⼀点时间来复习⼀下发送对象到后台和从后台获取对象的概念。
你可以根据之前的步骤创建⼀个新的项⽬,或者在⽰例项⽬中交替地使⽤AppDelegate⽂件。
在⽰例中,你会上传⼀个叫“Player”的对象,这个对象有“Name”和“Score”字段。在你的数据库中,你会有⼀个名
为“Player”的表,和你上传的所有对象,下⾯来看看例⼦:
到didFinishLaunchingWithOptions⽅法,之后添加以下代码,连接到Parse后台服务:
PFObject *player = [PFObject objectWithClassName:@"Player"];//1
[player setObject:@"John" forKey:@"Name"];
[player setObject:[NSNumber numberWithInt:1230] forKey:@"Score"];//2
[player save];//3
注释1:在这⼀⾏你创建了⼀个类名为“Player”的对象。
注释2:在这⾥你对字段赋上值,name字段的值为“John”,score字段的值为“1230”。
注释3:在这⾥你保存了对象,对象会同步发送到Parse服务器。
这就可以了!最厉害的是你⽆须在浏览器上的Parse界⾯去创建⼀个表,这个表将根据你上传的对象⾃动创建。
编译运⾏你的程序!如果你正确地在代码中设置了keys,还有你的app在上传对象前正确注册到了Parse服务器,那么⼀切都会很顺利。
但上传的对象在哪?
为了检查你的对象是否正确保存了,在浏览器中打开Parse dashboard界⾯,点击“Data Browser”,在这⾥你应该可以看到你上传的对象,如下图:
这就是保存对象最简单的⽅法。恭喜你成功地和后台进⾏了交互!
异步操作
你可能已经注意到了,在控制带出现了警告信息,你的app会被阻塞直到你的对象完成上传,这是同步的⽹络操作!这样你不但不能检查调⽤的结果,你的⽤户也会被卡在调⽤API的等待上。
你的应⽤可能会因此获得⼀星评分!当然,还是有解决的办法的。
注释掉之前在didFinishLaunchingWithOptions⽅法添加的代码,否则你的app在每次运⾏时都会上传⼀个新的对象。再添加以下的代码:
PFObject *anotherPlayer = [PFObject objectWithClassName:@"Player"];
[anotherPlayer setObject:@"Jack" forKey:@"Name"];
[anotherPlayer setObject:[NSNumber numberWithInt:840] forKey:@"Score"];
[anotherPlayer saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded){
NSLog(@"Object Uploaded!");
}
else{
NSString *errorString = [[error userInfo] objectForKey:@"error"];
NSLog(@"Error: %@", errorString);
}
}];
正如你所看到,你使⽤了异步的⽅式上传了对象,还有在⼀个代码块中检查返回结果。随着代码块在i
OS中越来越多的使⽤,你应该对代码块感到熟悉。每个简单的UIView动画⽬前都是在代码块中完成的。幸运的是,这⾥有⼀个教程让你更加熟悉代码块这种特性,链接为(英⽂教程)。
编译运⾏你的app吧!
在Parse Dashboard中检查你是否正确上传了对象到服务器。不同的是这次你的app在上传对象时不会阻塞了。
你应该会注意到你的设备(或模拟器)会出现⼀个⽹络活动指⽰器,指⽰器旋转时登陆界⾯会弹出来。过了⼀会⼉,当交互完成后,你会看到控制台中出现NSLog消息。当要上传想image那种要花更长时间去传输的对象时,这是⼗分有⽤的。
像之前那样,去到Data Browser界⾯你就会看到,在通过同步上传的对象的旁边出现了⼀个通过异步上传的对象。
取得对象
现在,是时候去获取对象了。为了实现这个⽬的,Parse有⼀个类PFQuery——它执⾏查询操作,具体可看。
你将会编写代码,去查询Score超过1000,Name为“John”的对象。在这之前,注释掉之前的代码,否则每次运⾏程序都会上传新的对象。加⼊以下代码:
PFQuery *query = [PFQuery queryWithClassName:@"Player"]; //1
[query whereKey:@"Name" equalTo:@"John"];//2
[query whereKey:@"Score" greaterThan:[NSNumber numberWithInt:1000]]; //3
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {//4
if (!error) {
NSLog(@"Successfully retrieved: %@", objects);
} else {
NSString *errorString = [[error userInfo] objectForKey:@"error"];
NSLog(@"Error: %@", errorString);
}
}];
注释1:你创建了⼀个查询对象,“Player”是你想进⾏查询的表。
注释2:你只想获取name为“John”的对象。。。
注释3:。。。还有score要超过1000的
注释4:发送查询,在代码块中打印结果。
编译运⾏你的app!由于操作是异步的,你的UI界⾯不会卡住——这是让你的⽤户感到⾼兴的关键。在控制台中,你会看到符合查询条件的所有对象,如下图所⽰:
在对基本的存储和查询操作有了简单探索后,你可以继续在项⽬中操作了。
回到项⽬中,注释掉刚才的代码。
⽤户注册
你的⽤户使⽤你的app时的第⼀步就是在注册账号。
在项⽬中打开RegisterViewController.m⽂件,添加以下Parse头⽂件:
#import <Parse/Parse.h>
正如你所看到的,现在注册视图除了打开和关闭外,还没有添加任何功能。你的任务就是在⽤户点击“Sign Up”按钮时,可以进⾏注册操作。
为了实现这个⽬的,你可以到关联了这个按钮的IBAction:
//Sign Up Button pressed
-(IBAction)signUpUserPressed:(id)sender
{
//TODO
//If signup sucessful:
//[self performSegueWithIdentifier:@"SignupSuccesful" sender:self];
parse error怎么解决}
你需要在这⾥添加注册操作的代码,然后检查是否可以成功注册。
⽤以下的代码替代上⾯signUpUserPressed⽅法中的内容:
//Sign Up Button pressed
-(IBAction)signUpUserPressed:(id)sender
{
//1
PFUser *user = [PFUser user];
//2
user.username = ;
user.password = ;
//3
[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (!error) {
//The registration was successful, go to the wall
[self performSegueWithIdentifier:@"SignupSuccesful" sender:self];
} else {
//Something bad has occurred
NSString *errorString = [[error userInfo] objectForKey:@"error"];
UIAlertView *errorAlertView = [[UIAlertView alloc] initWithTitle:@"Error" message:errorString delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]            [errorAlertView show];
}
}];
}
在以上代码中,创建⼀个⽤户的步骤是:
注释1:创建⼀个新的PFUser对象,这个类是⽤来登陆和注册的。它会保储已经通过验证的⽤户,你可以在你想要的时候访问这个⽤
户的数据。你可以在到关        于PFUser的⽂档。
注释2:指定TextFields中的内容为⽤户名和密码。
注释3:调⽤在后台注册⽤户的⽅法,在代码块中检查结果。结果有两种可能,⼀种是注册成功,新⽤户被创建,然后视图转到照⽚墙
视图。或者是注册失败,产⽣错误信息,你可以对⽤户显⽰错误描述。
编译运⾏你的app看是否有错误!
为了检查⽤户注册操作,运⾏程序,在Log In界⾯按下Sign Up按钮,你会看到下图:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。