Effective-Objective-C-读书笔记-Item-4-如何正确定义常量

前言

写博客果然比光看书要花时间=。=,书都快看完了,才写到第4节。但是总结一遍,的确印象深刻啊~~

这次的主题是“常量”,非常常用,又非常重要的东西~良好的代码规范、设计,少不了各种常量

Item 4 - Prefer Typed Constants to Preprocessor #define

本节着重对比了常量的定义形式,类型常量和#define的区别、各自的特点。最后得出,我们应该用带有类型的常量,而不是#define。

UITextView编辑时插入自定义表情-简单的图文混编

前言

在iOS开发中,经常需要用UITextView作为编辑文本的输入控件。
但是如何在编辑时插入自定义表情呢?就是像发微博时那样?

本文简单的用NSTextAttachmentNSAttributedString的特性,实现了

  • 在UITextView中编辑文字时插入自定义表情图片
  • 同时可以返回带有表情“替换符”的纯文本字符串。

示例

本文代码工程地址:https://github.com/zekunyan/UITextViewDIYEmojiExample

效果图:

效果图

Entity和Model的不同-关于代码的数据层

前言

经常都能在一些博客、文档中看到“Model”、“Entity”的字样。如MVC模式中的“M就是Model”,“MVVM对应的Model-View-ViewModel”,数据库抽象层里面的“Model“等。

它们的区别到底是什么?

其实没有真正官方的对Entity和Model的定义,在此我只是说说我自己的理解。

一次审核被拒的经历-关于iCloud到底应该备份什么数据

前言

项目最近一次审核被拒了=。=
仔细看了一下后,发现是没有遵守“iOS Data Storage Guidelines”。
在此总结一下。

被拒原因

先看看被拒的反馈信息:

1
2
3
Apps must follow the iOS Data Storage Guidelines or they will be rejected
On launch and content download, your app stores 12.14 MB, which does not comply with the iOS Data Storage Guidelines.

大致意思就是App下载东西以后,在iCloud里面查看此App需要备份的体积变大了。

Block类型变量-缓存Http请求与回调

前言

Objective-C中的Blocks实在是太好用了,有了它,我们就可以将“代码块”封装起来,当成变量使用、传递,所以,在Objective-C中,iOS中,许多的回调是用Block来完成的。

问题

我自己在之前的项目中,就遇到过一个问题。因为项目的需要,手机端所有的跟服务器的通信都需要“加密”,在经过一番调研后,我们使用的是类似OAuth机制(至于什么是OAuth,各位Google一下就明白了,大部分的公共API都用到了这种机制)。

提升UITableView性能-复杂页面的优化

前言

随着App的用户界面的内容越来越丰富,再强的手机可能都无法同时渲染复杂的UI界面和保证流畅的体验。所以,我们这些程序猿=。=在写代码的时候就要注意,如何尽可能提高用户的操作流畅性。

之前的做的项目,青桔音乐iOS客户端里面的首页就是一个类似微信朋友圈的“动态”页面,大致如下:

青桔动态页面

如果是你,你会怎么实现这个页面呢?

这还用问,当然是用UITableView+自定义的UITableViewCell。

UITableView是可以滑动的,为了不让用户在滑动中感到有卡顿,该如何优化?下面,我就写一下我自己在做项目时的“经验”~

NSString的Copy与内存分配

前言

不管是用什么语言开发,字符串应该算是用的最多的了。在Objective-C中,字符串类是NSString,以及其子类NSMutableString等。所以,对于字符串类,编程语言、编译器等往往会做特殊处理。下面我就说说我自己在项目中发现的NSString的“奇怪”的地方。

利用NSProxy实现消息转发-模块化的网络接口层设计-原创

更新

  • 2015-12-21: 其实用Category按照业务拆分网络请求接口的代码也是非常棒的,目前我自己就是这么做的=。=,文章就当做熟悉下NSProxy吧~

前言

之前在做项目的时候,所有业务的网络接口方法,全部都写在了一个文件里面,一开始还好,毕竟每个方法的代码也只是十几行,增加、修改也比较容易。但是随着接口的增多,这个文件慢慢居然超过了1000行,里面几十个方法都写在一起,实在是不好维护。

虽然保持这样也没有什么,多用用Cmd+F就能找到。但是,真是越看越不顺眼😳, 代码一定要有“美感”啊~😝

所以在查阅了大量文章后,终于想出了本文即将说明的办法,越发觉得Objective-C的“消息”机制是多么的赞~😚

Github 示例

贴上本文中的示例工程:https://github.com/zekunyan/HttpProxyExample

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器