杂记-本周工作记录

最近有点小忙,虽然还抽空去SH参加了iOS的Talk。主要做的是修改了个xCode4.x时代就有的项目,主要内容是添加对iOS7的支持并完成release。不曾想项目本身还有好多问题,在修复过程中发现这些问题都是容易犯错的地方。于是准备一一记录,权且作为一个总结。

本文已同步到iCocoa,欢迎访问。

iPad上Present Modal View Controller

通常情况下,iPad上使用spliteVC,这时如果需要弹出modalVC的时候,需要使用spliteVC来present。如果是用master弹出,当从横屏转向竖屏的时候,由于master会隐藏,所以弹出的modalVC也会消失。

AutoResize的代码实现

对于iOS5系统,是不支持autolayout的,要支持这一部分系统的横竖屏旋转的时候,可以在nib文件里直接设置autosize,效果很直观。比如要实现如下的自适应:

只需要在nib文件里设置:

但是刚好项目中的文件没有使用nib,只得代码实现。根据nib的设置,我想当然的设置:

self.redView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin;

发现一旋转view都找不到了。后来发现,如nib中设置的view 的autoresizemask的属性居然是:W+BM,所以代码实现应该是:

self.redView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleBottomMargin;

ASIHttpRequest的默认长连接方式

ASI中shouldAttemptPersistentConnection默认是YES,就是会把请求作Keep alive处理。有些人遇到的问题是request会发送2次的问题。而我这里的问题是依次请求服务器同一文件夹下的文件时,有时会返回
"The operation couldn’t be completed. Connection reset by peer", NSLocalizedDescription=A connection failure occurred

而据说服务器上没有log,我也不想深究,发现关闭长连接后,这个问题就会消失

ASI另外一个需要注意的地方是,request结束后的成功/失败的代理是路由到主线程的。有些需要在运行时在次线程慢慢上传下载的请求时,要注意到这一点。

读取orientation

读取statu bar 的orientation,否则会返回不确定的方向

类型转换

比如,NSUInteger的类型不要用int读取。这个在64bit系统出来了以后,更需要注意。

 

 

 

 

 

 

 

 

posted on 2013-11-15 14:15  scorpiozj  阅读(582)  评论(0编辑  收藏  举报