1、委托包含了两个对象的关系:delegating object和delegate object。应该翻译为授权对象和委托对象。授权对象保存了委托对象的弱引用,并且在合适的时间发送消息给委托对象。
2、Cocoa框架下,在内存管理的环境,授权对象维护了它的委托对象的弱引用;在垃圾回收环境,接受者维护了它的委托的strong reference。
3、Cocoa框架类的大多数情况下,委托对象自动的注册成为了通知的观察者,而这个通知是授权对象发出的。所以授权对象给自己的观察者发出了相应的通知,而不是直接发送委托函数给它的委托。
4、数据源几乎和委托对象是一样的。不同的是它和授权对象之间的关系。数据源是数据的委托控制,而委托是用户界面的委托控制。数据源负责它提供给的视图的模型数据的内存管理。
5、UIImagePickerController 提供基本的,可定制的用户界面。可以拍照,拍摄电影。也给用户简单的编辑新拍摄的媒体的功能。AV Foundation framework提供灵活且强大的类,来为app添加可全面自定义的静态图片和电影的拍摄功能。
6、一个UIImagePickerController的界面
ps:苹果开发者网站图片
7、在iOS3.1以及之后的版本,可以赋值给cameraOverlayView属性来添加一些自定义视图,因为UIImagePickerController的view属性是私有的,不能修改。
8、调用isSourceTypeAvailable:
来确认摄像机是否可用。有时候即便有摄像机,它也是不可用的,方法会正确的返回NO。
9、UIImagePickerController的mediaTypes(NSArray)属性为空或者属性所包含的media type不可用,会抛出异常。
10、使用iOS系统内建的摄像机时,编辑会有一些强制的选项:(1)对于静态图片,正方形的裁剪框,最大像素的尺寸值;(2)对于影片,强制最大的影片长度和分辨率。如果不愿意,请提供自定义编辑UI。