做网络请求时,一直想用 GZip 对 JSON 进行压缩后传输,但是一直没空弄,听说不难。这两天试了一下,果然不难。
在 Rails 项目根目录下的config.ru
,加入use Rack::Deflater
,如下:
1 2 3 4 |
|
重启服务器即可。
如何判断是否生效了?那就来个测试。
做网络请求时,一直想用 GZip 对 JSON 进行压缩后传输,但是一直没空弄,听说不难。这两天试了一下,果然不难。
在 Rails 项目根目录下的config.ru
,加入use Rack::Deflater
,如下:
1 2 3 4 |
|
重启服务器即可。
如何判断是否生效了?那就来个测试。
pch 文件可是个好东西,把常用的定义或者 import 放在 pch 中,这样在不用在项目中再引用和定义了,即可以做到全局 macro,又可以作为全局 import 用。
然而最近在用 DTCoreText 和 ZipArchive 时,发现无论怎么调试,都无法编译通过,出现类似很多类名 not found,甚至是 NSString 都未找到!!
后来研究了好久,原来这两个库有用 C 和 C++ 编译。而 pch 文件对于 C 的文件一样有效。试想一下,C 的代码引用 OC 的代码,会出现什么?当然是编译失败!
问题找到了,如何让 C 的文件编译的时候不引用 OC 的代码呢?
突然想起我们经常看到一个这个定义:
1 2 3 4 |
|
看来这个ifdef __OBJC__
就是用于判断是否是 OC 文件的!!我以前一直以为这个宏是判断项目是否用 OC 编译的!!当时还纳闷,啥时候会出现不用 OC 写 iOS 项目?
因此,在原来的 pch 里面适当的将代码用这个ifdef __OBJC__
包起来,就解决了 C 的文件引入 OC 代码的问题!!
Window
的rootViewController
属性在 iOS5 之后都期望被设置,因为旋转等原因,controller 控制 View 比自己控制 View 更安全。
但是突然出现一个需求,需要更换主Window
的rootViewController
,那如何做UIView
动画呢?
1 2 3 4 5 6 7 |
|
咋看之下没啥问题,运行起来也没问题。能成功实现替换为新的vc
。
然后出现一个很诡异的问题——如果设备是横的,新的vc
对应的View
会有一个旋转的动画,导致动画混乱,甚至很奇怪的动画。
刚开始以为是vc.view
加载太慢,后来没解决。Google 了一下,发现有人解决了。将上面的代码改为:
1 2 3 4 5 6 7 8 9 10 |
|
Github project: uncrustify-config-ios
习惯上每次使用一个类库的功能,我第一时间想到的都是Google那个类库的使用例子。这不是一个好习惯,这次我下载了CocoaAsyncSocket的代码,找了好一阵没找到满意的例子。灰心丧气之余想到很多用到我写的代码的人们也是不看文档,不看注释的。他们给我带来了巨大的困扰,而我现在也不看别人的注释和文档,假如CocoaAsyncSocket的作者要为我服务的话,那他肯定也会吐血不止。
于是,我决定自力更生,从代码注释里找找我需要功能的用法。
我需要的功能是,用TCP或者UDP发送一些数据给服务器,不用关心服务器是否收到数据。
下面例子,只是TCP的发送过程,UDP请自行看注释。
时光飞逝,一晃工作两年了。2011年的6月30日,带着对同学的不舍,带着对未来道路的迷茫,带着对即将开始人生第一份工作的激动,离开了华电的大门。在离开的那一刻,我相信,我们一定会变得很优秀,大家都要加油~
开始了人生中的第一份工作后,一切变得好新鲜。接触了很多人、很多事,每天都在成长着,每当睡前回想白天的事情,总是会有一种“当时不应该这么做”或者“要是这么做就好了”的反省。无论是生活中、工作中,处事中、技术中,遇到的一切的一切,总是让我成长。
2011/7~2011/8,边学习 Ruby On Rails 边做服务器后台,有趣的是,还得同时学习 iOS。由于缺少经验,总是拿不清主次,捡了芝麻丢了西瓜,把精力花在细枝末节上。现在想想,当时真的好天真~虽然现在也好不到哪里去~
打算迁移系统了,但是不想采用升级的方式,毕竟一个系统用久了,有好多垃圾文件,无论是自己遗留的还是系统或者第三方软件遗留的,总之硬盘是越来越小了。既然打算升级,干脆来一个大换血吧。
经常有收集各种小软件的习惯,有的确实很不错,有的可能则是新颖但是不实用,装了就没用过~~整理出个人觉得相当不错的,好装到新系统。
以下软件都能正常运行于10.8系统。
MacOS里有一个相当人性化的功能——QuickLook,选中一个文件,不用打开它,只用按一下空格键,立即可以看到文件内容或者信息,相当快。然而悲剧的是,并不是所有文件类型都被支持的!!如果按了空格键,发现只是显示文件图标,只好很无奈的在按空格键把它关了,再去把文件打开,早知道就直接打开文件了~忧伤啊~
以前导出搜索不错的插件,最近发现,用 brew cast
可以完全帮我们安装。
请移步到 https://github.com/sindresorhus/quick-look-plugins
小知识:让 QuickLook 也能选择文字,只需要在终端中执行以下命令:
1
|
|
Key-Value Coding是一种非直接访问对象属性的机制,使用字符串来定位属性,而不是直接调用属性的getter或者setter等访问器。
如果属性是简单类型,例如scalar, String或者Boolean,将会转换为NSNumber
处理。如obj的a属性是Boolean:
1 2 |
|
Key必须遵循OC命名规范:ASCII编码,以小写字母开头,不含空格。
keyPath是将key组合后的一种方便用法,用点分割属性名:
KVO是降低代码耦合度的一种很有效的方法,以往我都是对某个实例的属性进行监控,获取他的变化情况。其本质上是监控属性的地址的变化。然而对于可变长度的对象,如NSMutableArray
和NSMutableDictionary
等,向这种对象进行添加成员,其的地址不会发生变化,普通的KVO方法自然就不能用了。该如何监控可变长度对象的内容变化呢?
Google了一下,又查阅了官方文档,目前有两种方法:
第一种方法具体实现逻辑还不是很清楚,有待进一步深入学习Key-Value编程。
第二种方法使用了Proxy。