开放平台:Parse for iOS

简介: 引言:Parse一款基于Baas的后端云存储服务平台,为开发者提供云端数据存储和读取的能力,Parse团队在其SDK方面花费了大功夫,实现了很多非常有用的功能.

引言:

Parse一款基于Baas的后端云存储服务平台,为开发者提供云端数据存储和读取的能力,Parse团队在其SDK方面花费了大功夫,实现了很多非常有用的功能.并且,非常的稳定,兼容和灵活性,相对于其他Baas平台,Parse在上手方面是最为容易的.



Parse的特性如下:

1:自定义数据字典

2:消息推送

3:地理位置

4:数据缓存

5:离线数据同步

6:云端自定义代码

7:二进制文件读取



参考资料: 

1:Parse的主页

https://www.parse.com

2:


安装:

1.首选的安装方式是跟着Parse自家提供的官方起步教程即可完成,非常简单!

2.也可以用 CocoPods,只是SDK太肥了,而且装的话,还会有一个 Facebook SDK的依赖.



使用:

Parse支持的数据类型主要如下:

Number: 对应各种类型,包括:整形,浮点型 转换成NSNumber后存储到Parse Cloud

Date: 对应NSDate

Array:对应NSArray. 万能的数组(Parse的强大之处)

String:对应NSString 

Null:  很少用到

Pointer: 指针:相当于表与表之间的外键关系, 只存储着某个对象的ID

Relation:关系:应付多对多关系时的方案,但是可以用Array达到同意的功能.



查询:

Parse设定了尽可能多样的查询方式,并且它还支持NSPredicate. 这对于使用过CoreData的人来说,是比较容易上手的.

首先来说说Parse提供哪些查询接口


时间:

查询创建时间大于某个时间的数据行:

NSDate *lastQueryDate = [self lastQueryTime];
if (lastQueryDate == nil) {
    lastQueryDate = [NSDate date];
}
[query whereKey:@"createdAt" greaterThan:lastQueryDate];

查询缓存策略:

kPFCachePolicyIgnoreCache 
查询不从缓存加载结果或将结果保存到缓存。默认缓存策略为 kPFCachePolicyIgnoreCache。
kPFCachePolicyCacheOnly 
查询会忽略网络,仅从缓存加载结果。如果没有缓存的结果,则会引发 PFError。
kPFCachePolicyNetworkOnly 
查询不从缓存加载结果,但会将结果保存到缓存。
kPFCachePolicyCacheElseNetwork 
查询首先尝试从缓存加载结果,但如果加载失败则从网络加载结果。如果缓存和网络加载都不成功,则会出现 PFError。
kPFCachePolicyNetworkElseCache 
查询首先尝试从网络加载结果,但如果加载失败则从缓存加载结果。如果网络和缓存加载都不成功,则会出现 PFError。
kPFCachePolicyCacheThenNetwork 
查询首先从缓存加载结果,然后再从网络加载。在此情况下,实际上会调用两次回调 - 第一次针对缓存的结果,随后针对网络结果。由于会在不同的时间返回两个结果,因此该缓存策略不能与 findObjects 同时使用。




Push:

官方提供了一个详细的消息推送配置流程:

https://parse.com/tutorials/ios-push-notifications

Parse远程推送教程实在是太详细了,图文并茂.

在这里我简单复述了一下整个过程方便理解:

1.申请苹果的开发者招生计划,并成功激活.

2.通过本地的Mac系统生成一个证书签名请求(Certificate Signing Request),

3:接下去苹果开发者主页的Member Center(会员中心)创建一个新的App IDs. 并通过证书签名请求激活这个App IDs的远程推送服务功能.

4.下载这个App IDs的推送许可服务,并通过钥匙访问串导出密匙(p12).

5.最后生成这个App IDs的描述文件,并应用到工程中.

6.编写Parse所提供的Push的相关API代码. 实现远程消息推送.


其中有一个步骤是当你通过Certificate Signing Request(证书签名请求)激活了苹果的远程推送通知服务以后.

并下载了推送许可证书:aps_development.cer.  教程中要求从钥匙访问串(Keychain Access)中导出.p12后缀的密匙.

在导出时有两点需要注意:

1:请在名称为 Apple Development IOS Push Services : ***** 或 Apple Prodoction IOS Push Services : ***** 的栏位上直接右键,如下图:


图中方框中的三角箭头,请直接无视和忽略他。 里面是证书的创建者信息而已。 虽然也可以导出p12, 但是这个p12是无效(请特别注意)


2:在导出时要求你输入密码,请直接忽视,也就是空密码即可,否则Parse 的 App Settings - Push Notifications里要求上传的p12密匙无法成功.




最后还有一个细节要注意,也就是当你的产品成功发布到应用商店以后,你之前用来测试的开发版本证书,应该替换为发布版本证书(aps_production.cer). 否则从App Store上面下载的应用将无法收到消息推送.. 所以,你需要重新上传发布版本的密匙.跟开发版本的上传方式一样. 成功后如下图所示:




总结:





可能遇到的问题:

1:编译问题.


解决方案:

http://stackoverflow.com/questions/15457136/parse-for-ios-errors-when-trying-to-run-the-app





目录
相关文章
|
Android开发 iOS开发 数据格式
|
存储 缓存 API
开放平台:StackMob for iOS
引言: StackMob 是一个轻量级的 Baas 移动后端云存储平台. 为移动App提供了强大的后台云存储能力,其SDK架接在Core Data身上,在不改变Core Data API 使用方式的前提下为Core Data 提供云端存储的能力,此篇专门介绍了 StackMob 在 iOS环境的使用方式.
1419 0
|
API 开发工具 iOS开发
开放平台:微信 for iOS
按照常例,列一些网址先: 微信开放平台首页: http://open.weixin.qq.com 微信 iOS SDK 官方下载地址: http://open.
1175 0
|
API 开发工具 iOS开发
开放平台:新浪微博 for iOS
引言: 新浪微博几乎是把全平台数据的API接口都开放了出来,因此,很多优秀的第三方微博客户端在功能方面都非常的全面. 而通过SNS的分享推广方式在App世界里已经非常的普遍,甚至随处可见,本篇主要介绍一下App是如何跟新浪微博关联的.
1330 0
|
定位技术 iOS开发 数据安全/隐私保护
开放平台:百度地图 for iOS 使用相关
今天开始使用百度地图的API实现相关的地理位置功能 在根据官方文档: http://developer.baidu.com/map/sdkiosdev-2.
1037 0
|
6天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的世界中,选择正确的平台是关键。本文通过比较安卓和iOS开发的核心差异,揭示平台选择如何影响应用的性能、用户体验和市场覆盖。我们将深入探讨各自的开发环境、编程语言、用户界面设计原则以及发布流程,以帮助开发者和企业做出明智的决策。
27 9
|
1天前
|
搜索推荐 Android开发 iOS开发
探索安卓与iOS开发的差异性与互补性
【8月更文挑战第19天】在移动应用开发的广阔天地中,安卓与iOS两大平台各据一方,引领着行业的潮流。本文将深入探讨这两个平台在开发过程中的不同之处以及它们之间的互补关系,旨在为开发者提供一个全面的视角,帮助他们更好地把握市场动态,优化开发策略。通过分析各自的开发环境、编程语言、用户界面设计、性能考量及市场分布等方面,我们将揭示安卓与iOS开发的独特魅力和挑战,同时指出如何在这两者之间找到平衡点,实现跨平台的成功。
|
3天前
|
移动开发 开发工具 Android开发
探索安卓与iOS开发的差异:技术选择的影响
【8月更文挑战第17天】 在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚。本文通过比较这两个平台的编程语言、开发工具及市场策略,揭示了技术选择对开发者和产品成功的重要性。我们将从开发者的视角出发,深入探讨不同平台的技术特性及其对项目实施的具体影响,旨在为即将步入移动开发领域的新手提供一个清晰的指南,同时给予资深开发者新的思考角度。
|
6天前
|
Java 开发工具 Android开发
探索安卓与iOS开发的差异:从新手到专家的旅程
在数字时代的浪潮中,移动应用开发成为了连接世界的桥梁。本文将带你走进安卓与iOS这两大移动操作系统的开发世界,通过比较它们的编程语言、开发工具和环境、用户界面设计以及市场分布等方面,揭示各自的独特之处。无论你是初涉编程的新手,还是寻求进阶的开发者,这篇文章都将为你提供宝贵的洞见,助你在移动应用开发的征途上一帆风顺。
20 5