1.变量类型别滥用id,如果不仔细容易在程序执行时引发错误,因为在编译阶段编译器只是检测变量对象所属类型,尤其是类型为id时代表任何类型都可以通过检查,但不会检测变量对象调用的方法,这样当对象所属类不包含所写的调用方法时,编译通过,但在程序运行时才会报错。

2.简单介绍了框架自带的集合、字体等。

3.通过使用NSAttributedString可以让屏幕显示的字体样式更丰富,设置各种样式等,详细参见附件的演示Demo:http://files.cnblogs.com/colinhou/Attributor.zip

4.对于苹果目前推荐的故事板Storyboard,介绍了其生命周期,并介绍了一些注意事项。

(1)viewDidLoad,这一过程中,故事板会做好初始化操作,我们设置的各种输出(IBOutlet)也已经初始化完毕,对于整个app需要且仅需要做一次初始化的操作,应该在这里执行,因为viewDidLoad在整个生命周期只在程序开始时执行一次。但是需要注意,此时view并没有显示在屏幕上,也就是view的大小等信息都还是不确定的,所以不适合做与设置改变view大小尺寸的操作。

(2)viewWillAppear,这一过程中,view的几何信息已经确定,准备好要显示了,如果还需要改变大小、动画等,也可以在这执行。同时一些初始化操作也应当在这里执行,例如每次切换回来要更新数据等等,比如使用微信,每次重新从其他地方切换过来的时候,顶部都会有一个圆圈在转,表示正在获取最新数据。

(3)viewWillDisappear,表示view马上要从屏幕消失,这时需要停止动画等操作,避免占用资源,同时如果也需要保存数据或状态,这样下次再切换回来的时候(viewWillAppear),方便继续之前的操作或状态。

(4)viewDidAppear、viewDidDisappear在view已经出现或消失时触发,

didReceiveMemoryWarning在系统内存不足时触发,

viewWill/DidLayoutSubviews用于屏幕旋转做相应设置,后续会详细介绍。

5.广播机制NSNotificationCenter,如果收听了某一事件,当满足一定条件时,可以做出响应,触发指定操作,有点类似于flex的消息机制,监听或取消监听某一消息。

addObserver表示收听对象、观察者,即谁监听这一事件,selector表示响应方法,name即广播名字,表示被收听的事件,object表示这是谁的广播、谁的事件,如果为nil则表示不管是谁,只要这一广播、事件发生了,都会收听到,并作出相应操作。

同时在停止收听广播的时候,一定要取消收听,这是因为NSNotificationCenter使用了不安全引用指针“unsafe retained pointer”,如果没有取消收听,当收听对象不存在了,通知NSNotificationCenter发送通知时就会引起程序崩溃,这里本来应该使用weak类型的指针,这样指针就能够自动变为nil,但是为了兼容iOS5(weak类型指针iOS6开始使用),目前还是使用的“unsafe retained pointer”。

另外,取消收听时建议使用指明具体信息的方式,避免造成无法使用其他广播。

6.介绍了使用UINavigationController管理多个View的方式,详细见附件的Demo:http://files.cnblogs.com/colinhou/Attributor.zip

另外,如果想跳过其它view,直接对特定View进行简单功能测试验证时,可以在Interface Builder中把起始箭头移至目标View,在代码中写好测试方法,启动调试后就能直接进入目标View验证功能了。

Demo效果截图:

  

最新文章

  1. 使用AXIS2客户端调用 WEBSERVICE
  2. Tarjan算法--强连通分量
  3. Android之GridView控制显示多少行以及遇到的怪事
  4. Python 3.x自定义迭代器对象
  5. mysql 判断表字段或索引是否存在,然后修改
  6. linux C编程之makefile
  7. mac 电脑配置cordova
  8. [Noi2008]假面舞会
  9. let 和 const
  10. String输出结果to thi
  11. nginx配置location总结及rewrite规则写法(转)
  12. C#编程(三十九)----------比较对象的相等性
  13. 用于HTML5移动开发的10大移动APP开发框架【转】
  14. vs2010中 js的intellisense(智能提示) 和 Snippets(代码块)
  15. 第1课 学习 C++ 的意义
  16. xaf.domain object new 在属性上的用法
  17. BeautifulSoup的find()和findAll()
  18. servlet配置及其生命周期
  19. 如何去掉android的标题栏
  20. Android4.4之后休眠状态下Alarm不准时的问题

热门文章

  1. c++中继承和java中继承的对比
  2. 比较HTML元素和Native组件的区别
  3. [OpenCV] HighGUI
  4. Python+Selenium进行UI自动化测试项目中,常用的小技巧1:读取excel表,转化成字典(dict)输出
  5. Web前端面试题集锦
  6. sprint个人总结+读书博客
  7. SQL Server添加MDW性能监控报表
  8. ASP.NEt MVC5--创建下拉列表
  9. 【原创随笔】Sql2008 R2 做CQRS小结
  10. Asp.net 字符(二)