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效果截图:

  

斯坦福iOS7公开课4-6笔记及演示Demo的更多相关文章

  1. 斯坦福iOS7公开课1-3笔记及纸牌Demo

    1.MVC Model:模型 描述程序是什么,例如数据库操作之类的行文以及纸牌Demo里纸牌玩法都是写在Model这一层,通过Notification和KVO(后续文章会介绍)两种方式与Control ...

  2. 斯坦福iOS7公开课11笔记及演示Demo&访问HTTPS链接下载数据

    这一节主要介绍UITableView以及iPad,Demo为从Flicker下载图片并显示,但是实际过程中发现需要FQ并使用HTTPS连接,所以这次用了两个Demo,一个是课程中的Demo,另一个是简 ...

  3. 斯坦福iOS7公开课10笔记及演示Demo

    这一节主要介绍了多线程中的串行队列以及滚动视图UIScrollView. 1 .多线程 这一节只是简单介绍了多线程的串行队列,即把任务加入线程队列后按顺序逐步执行. (1)目前iOS多线程提供的方法主 ...

  4. 斯坦福iOS7公开课7-9笔记及演示Demo

    这一部分主要介绍了iOS的绘图.手势.协议.block.力学特效动画(包括重力.碰撞.吸附等)以及自动布局的内容. 1.绘图.手势 (1)调用一个自定义的UIView时,可以使用awakeFromNi ...

  5. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述

    首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发. 首先我们要知道IOS系统中的结构情况,从贴近硬件的底层到贴近用户 ...

  6. 斯坦福ML公开课笔记15—隐含语义索引、神秘值分解、独立成分分析

    斯坦福ML公开课笔记15 我们在上一篇笔记中讲到了PCA(主成分分析). PCA是一种直接的降维方法.通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降维的效果. 本文继续PCA的话题, ...

  7. [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9285001 该系列笔记1-5pdf下载请猛击这里. 本篇博客为斯坦福ML公开 ...

  8. [置顶] NB多项式事件模型、神经网络、SVM之函数/几何间隔——斯坦福ML公开课笔记6

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9722701 本篇笔记针对斯坦福ML公开课的第6个视频,主要内容包括朴素贝叶斯 ...

  9. 斯坦福大学公开课:iOS 7应用开发 笔记

    2015-07-06 第一讲   课务.iOS概述 -------------------------------------------------- 开始学习斯坦福大学公开课:iOS 7应用开发留 ...

随机推荐

  1. JavaScript面试库

    1.将一段字符串转成驼峰命名法. var str = "web-kit-index"; function to(str){ var j = str.split("-&qu ...

  2. form表单action提交表单,页面不跳转且表单数据含文件的处理方法

    在最近的项目中需要将含 input[type='file']的表单提交给后台 ,并且后台需要将文件存储在数据库中.之前所用的方法都是先将文件上传到七牛服务器上,然后七牛会返回文件的下载地址,在提交表单 ...

  3. 使用 GistBox 轻松组织和管理你的代码片段

    GistBox 用简便的方式来组织和管理代码片段.你的代码会保存到云端进行备份,再也不用担心迷失在杂乱的代码片段中.GistBox 是建立在标准的 HTML5 技术基础上.在旅途中或在办公室,你都可以 ...

  4. Zookeeper集群部署

    一. 部署前的准备工作 保证各个主机之间能够正常通信,最好是在同一网段. 修改host文件,加入IP和主机名的映射.方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版 ...

  5. IOS开发UI基础UIControl事件

    UIControl事件1.UIControlEventTouchDown单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候. 2.UIControlEventTouchDownRepeat多点触 ...

  6. 【Spark】---- Spark 硬件配置

    存储系统 Spark任务需要从一些外部的存储系统加载数据(如:HDFS 或者 HBase),重要的是存储系统要接近Spark系统,我们有如下推荐:   (1)如果可能,运行Spark在相同的HDFS节 ...

  7. MEF核心笔记(6)让 MEF 拥抱 AOP

    场景: 最近推荐同事在项目中使用起了 MEF,用其构建一个插件式的多人开发框架,因为该框架不是让我去设计了,所以对于 MEF 和 IOC 等概念不是很了解的同事,便会出现各种问题.接入 AOP 便是其 ...

  8. [水煮 ASP.NET Web API2 方法论](3-3)路由默认值

    问题 如何为路由中参数设置默认值. 解决方案 不管使用属性路由还是集中式路由,ASP.NET WEB API 都可以很方便的为路由定义默认参数.在每次客户端请求的时候,如果客户端没有传这些参数,框架会 ...

  9. C# 之屏幕找图

    引言 最近,由于工作上的某些原因,又要写类似于外挂的程序,又要用到一个屏幕找图功能,很多程序(eg:按键精灵)都提供了类似的功能,其实在这之前,我也查找过很多类似的C#方法,因为之前有一个试过没有用得 ...

  10. ArrayList、Vector、HashMap、HashTable、HashSet的默认初始容量、加载因子、扩容增量

    这里要讨论这些常用的默认初始容量和扩容的原因是: 当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全 ...