Parse,不用配置的后台服务器

很多开发手机终端软件的朋友,假如想做一个网络的应用,除了使用大公司的api之外,就是需要自己搭建服务器了。本人,由于一直都是从事ios开发的,对服务器后台的开发,认识几乎为0,所以就一直制约了我们团队的发展,大概就是做一些本地应用啊,调用以下大公司的api的。但是,近段时间,我无意中发现了Parse,这个后台服务器。其实与其说是服务器,不是直接说就是一个空间,不过这个空间的服务相当好。几乎完完全全是傻瓜式的,官网的介绍非常详细。https://www.parse.com/

英文比较好的同学,可以直接去官网看介绍,超级简单。下面我大概讲述一下,我使用的一些想法吧。

由于很多开发者,都没有服务器,或者没有能力和精力去搭建一个服务器,所以,Parse就提供了一系列的方案。官网上,有ios和android两套的sdk,直接就可以用了,还有一个官方的例子做参考,那个例子其实也比较简单的,就是一个post数据,和一个get数据。但是不要小看这2个操作,互联网应用,几乎全部都是基于这2个操作的。Parse的好处在于,你写程序的时候,你可以默认假定你已经拥有一个别人配置好的,一流的后台服务器。你需要上传数据,只需

  1. PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"];
  2. [gameScore setObject:[NSNumber numberWithInt:1337] forKey:@"score"];
  3. [gameScore setObject:@"Sean Plott" forKey:@"playerName"];
  4. [gameScore setObject:[NSNumber numberWithBool:NO] forKey:@"cheatMode"];
  5. [gameScore save];
你这样设定下来,然后save一下就OK了。

使用这个函数,就可以将上传的动作后台进行,完成不会阻塞当前的线程。

[gameScore saveInBackground];


你想去把数据拿回来,操作更简单,甚至与数据库有点类似

首先说一下Parse支持的数据类型


目前Parse的table column支持NSString, NSNumber, NSDate, NSData, 或者另外一个PFObject。同时也可以使用NSDictionary and NSArray保存结构化的数据。其中NSArray 支持相对应的查询。虽然可以使用NSData保存二进制数据,但是推荐先使用PFFile保存文件,比如照片等,而在对应的column保存PFFile的引用。

常用的查询

类似SQL,查询时先创建PFQuery对象,然后设置查询条件。

先看个简单的,查询GameScore表中playName等于 “Dan Stemokoski”的所有记录。


复制代码

  1. PFQuery *query = [PFQuery queryWithClassName:@"GameScore"];[query whereKey:@"playerName" equalTo:@"Dan Stemkoski"];NSArray *objects = [query findObjects];



这个是查NSNumber,查询 playAge大于18的所有记录。


复制代码

  1. [query whereKey:@"playerAge" greaterThan:[NSNumber numberWithInt:18]];



这个是查数组的,aryMatchTypes是一个NSArray的数组,下面的语句查询aryMatchTypes包含"Football"的所有记录。


复制代码

  1. [query whereKey:@"aryMatchTypes" equalTo:@"Football"];



既然是面向对象的,Parse也支持关联查询,下面的例子中Comment和Post都是Parse的对象,下面的代码可以查询包含myPost对象的所有comment记录。


复制代码

  1. PFQuery *query = [PFQuery queryWithClassName:@"Comment"];
  2. [query whereKey:@"post" equalTo:myPost];



Parse支持子查询,下面的例子是找到所有comments的记录,其中的post含有image。


复制代码

  1. PFQuery *innerQuery = [PFQuery queryWithClassName:@"Post"];
  2. [innerQuery whereKeyExists:@"image"];
  3. PFQuery *query = [PFQuery queryWithClassName:@"Comment"];
  4. [query whereKey:@"post" matchesQuery:innerQuery];



或查询,很遗憾,Parse不支持OR条件查询,只支持AND,要用OR的话可以用Compound query,类似SQL的Union


复制代码

  1. PFQuery *lotsOfWins = [PFQuery queryWithClassName:@"Player"];
  2. [lotsOfWins whereKey:@"wins" greaterThan:[NSNumber numberWithInt:150]];
  3. PFQuery *fewWins = [PFQuery queryWithClassName:@"Player"];
  4. [lotsOfWins whereKey:@"wins" lessThan:[NSNumber numberWithInt:5]];
  5. PFQuery *query = [PFQuery orQueryWithSubqueries:[NSArray arrayWithObjects:fewWins,lotsOfWins,nil]];
你使用PFQuery可以将你上传到parse的数据拉回来,操作如上所示,非常简单。

parse服务分收费和免费,我感觉免费用户足够使用了,起码对于我这些开发者来说。

之前一直想弄一个push notification的,但是一直不想去弄服务器,现在有了parse,一切都可以迎刃而解了,parse网站上面,提供了push notification的一整套的方案,配置什么的,简直可以说就是一直按下一步的简单。

本人刚刚开始去了解这个后台,所以一些东西还是理解得比较表面的,如果大家还有更好的想法和建议的,欢迎和我交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值