iOS梦工厂

iCocos——不战胜自己,何以改变未来!

网络请求疯(封)装

| Comments

一直想总结一下关于iOS的离线数据缓存的方面的问题,然后最近也简单的对AFN进行了再次封装,所有想把这两个结合起来写一下。数据展示型的页面做离线缓存可以有更好的用户体验,用户在离线环境下仍然可以获取一些数据,这里的数据缓存首选肯定是SQLite,轻量级,对数据的存储读取相对于其他几种方式有优势,这里对AFN的封装没有涉及太多业务逻辑层面的需求,主要还是对一些方法再次封装方便使用,解除项目对第三方的耦合性,能够简单的快速的更换底层使用的网络请求代码。这篇主要写离线缓存思路,对AFN的封装只做简单的介绍。

关于XLNetworkApi

ScrollView回到顶部复原

| Comments

相信细心的开发者都会发现scrollView自带一个功能,当用户点击顶部的状态栏时,scrollView的ContentOffset.y轴会自动滚动到初始位置,效果如图所示:

KeyChain初探

| Comments

iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。

“yourAppID.com.yourCompany.whatever”就是你要起的公共区名称,除了whatever字段可以随便定之外,其他的都必须如实填写。这个文件的路径要配置在 Project->build setting->Code Signing Entitlements里,否则公共区无效,配置好后,须用你正式的证书签名编译才可通过,否则xcode会弹框告诉你code signing有问题。所以,苹果限制了你只能同公司的产品共享KeyChain数据,别的公司访问不了你公司产品的KeyChain。

App卡顿了怎么办?

| Comments

在 VSync 信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,比如视图的创建、布局计算、图片解码、文本绘制等。

随后 CPU 会将计算好的内容提交到 GPU 去,由 GPU 进行变换、合成、渲染。随后 GPU 会把渲染结果提交到帧缓冲区去,等待下一次 VSync 信号到来时显示到屏幕上。

由于垂直同步的机制,如果在一个 VSync 时间内,CPU 或者 GPU 没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示屏会保留之前的内容不变。这就是界面卡顿的原因。

从上面的图中可以看到,CPU 和 GPU 不论哪个阻碍了显示流程,都会造成掉帧现象。所以开发时,也需要分别对 CPU 和 GPU 压力进行评估和优化。

SVN实战总结

| Comments

  • A:add,新增
  • C:conflict,冲突
  • D:delete,删除
  • M:modify,本地已经修改
  • G:modify and merGed,本地文件修改并且和服务器的进行合并
  • U:update,从服务器更新
  • R:replace,从服务器替换
  • I:ignored,忽略

常见提示图标:

黄色感叹号(有冲突):
--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的修改。要解决冲突,如果你确认你的修改是无效的,则用TSVN还原你的修改就行了;如果认为你的修改是正确的,别人的提交是无效的,那么用TSVN先标记为“解决冲突”,然后就可以提交了;如果你认为你的修改和别人的修改都有一部分是有效的,那么你就把别人的修改手动合并到你的修改中,然后使用TSVN标注为“解决冲突”,然后就可以提交了。进入文件夹,寻找有黄色感叹号的文件,这些文件就是发生冲突的地方,根据实际情况处理冲突

自定义相册删除复活的实现

| Comments

在这里(http://www.cnblogs.com/iCocos/p/4705585.html)我们提到了。

  • 简单的实现了获取系统相册图片并且保存图片到系统相册
  • 定义自定义的相册,并且保存到自定义相册

这里久以一个简单的例子实现一个上面的所有功能,并且添加一个很有用的功能实现 App中自定义的相册呗删除之后再次保存相片无法成功

这里使用的是一个系统的库:ALAssetsLibrary

Core Image 初探

| Comments

前言: Core Image 是 IOS 的图片处理框架,有使用方便、易于管理,性能优异的特点。

  • 用途
    • 在照片、视频处理,把滤镜作为最后一步,添加水印
    • 给照相机提供实时效果
    • 面部检测,自动滤镜增益,图片分析算法
    • 更多

长链接&短链接

| Comments

  • HTTP协议与TCP/IP协议的关系
  • 如何理解HTTP协议是无状态的
  • 什么是长连接、短连接?
    • TCP连接
    • TCP短连接
    • TCP长连接
  • 长连接短连接操作过程
  • 长连接和短连接的优点和缺点
  • 什么时候用长连接,短连接?

Xcode Menu

| Comments

  本文调研Xcode的版本是 7.1,基本是探索了菜单的每一个按钮。虽然从xcode4一直用到了xcode7,但是一般都只是用了一些基础的功能,说来也惭愧。在一次偶然的机遇突然发现了“显示调用层级”的选项才知道菜单了的按钮并不都是没有用,而是很有用只是你不知道罢了。 本想这种东西仔细总结了也不一定有价值还耽误时间,但是两个想法最终还是驱动了我仔细弄完,一是xcode7.1才刚更新没多久,这个时效性还行(xcode每年菜单变化都不小);二是这种文章属于干货性质,自己有时在大项目中不确定或者害怕一下点错了的时候可以来回看一下,并且其他博友也可以查询。

下面划了删除线的选项是太基础的选项可以忽略,标红的选项是需要注意的。