iOS学习项目(11-QQ聊天)

来源:互联网 发布:耶路撒冷 知乎 编辑:程序博客网 时间:2024/05/16 09:37

①枚举类型的命名规范

枚举类型名:类名+属性

枚举属性名:类名+属性+作用

举例:

enum CZMessageType {

CZMessageTypeSelf = 0,

CZMessageTypeOther

}

typedef enum CZMessageType CZMessageType;

---------------

上述枚举类型的简写

typedef enum {

CZMessageTypeSelf = 0,

CZMessageTypeOther

} CZMessageType;

(type + 数据类型 + 新的命名)


② MAX(a, b)  该宏定义用于比较两个数值的大写

【备注:宏的命名规范是要大写】


③ tableView的allowSelection属性表示tableView是否可以进行选择


④拉伸图片

[image stretchableImageWithLeftCapWidth:topCapHeight:]

参数一:左边不拉伸区域

参数二:上边不拉伸区域

其内部本质上是使用了resizableImageWithCapInsets:方法和capInsets属性

备注:【此处为自动计算】

右边不拉伸区域:图片宽度-左边不拉伸区域-1

下边不拉伸区域:图片高度-上边不拉伸区域-1


⑤通知机制

假设有牛奶商和买家两种角色

牛奶商:通知发布者

买家:通知接收者

关系:牛奶商与买家之间存在着订购和派送牛奶的关系

1 addObserver:selector:name:object:    此行为是买家行为,表示订购牛奶

observer:指接收者(买家)

object:发布者(牛奶商,为nil时,表示所有发布的人都可以)


2 postNotification:name:object     此行为是牛奶商行为,表示派发牛奶行为

object:发布者(牛奶商)


一旦产生了订阅的行为,则记得需要退订

removeObserver:   【记住:如果不退订可能会产生野指针的问题】


⑥通知与代理之间的区别

相同点:完成对象间的通信

不同点:  代理:1对1

通知:多对多

0 0
原创粉丝点击