复制代码
一、类扩展(class extension,匿名分类)
1.格式
@interface 类名 ()
{
    // 成员变量...
}
// 方法声明...
@end

2.作用
1> 写在.m文件中
2> 一般用来扩充私有成员变量、@property属性、方法等

二、随机数生成
1.arc4random() 会生成任意正整数和0
2.arc4random_uniform(100) 会生成0~99的整数(包括0和99)

三、UIView常见方法
1.addSubview:(UIView *)child
添加子控件用(最新添加的子控件,会显示在最上面)

2.NSArray *subviews
通过addSubview:方法添加的子控件都会存在于这个数组中

3.removeFromSuperview
将控件本身从父控件中移除(控件本身也会从父控件的subviews数组中移除)

4.(UIView *)viewWithTag:(int)mytag
* 返回tag值为mytag的子控件
* 如果有多个子控件的tag一样,只会返回第一个匹配的子控件(在搜索tag匹配的控件时,也包含控件本身)

5.UIView *superview
父控件

四、xib的基本使用
1.可以认为xib和nib是同义词

2.加载xib文件
[[NSBundle mainBundle] loadNibNamed:@"RowView" owner:nil options:nil];
// 加载RowView.xib文件,创建Objects下面的所有控件,并且按顺序装到数组中返回

3.storyboard和xib的异同
1> 区别
* storyboard : 描述软件界面,大范围,重量级,比较适合描述整个软件的所有界面
* xib : 描述软件界面,小范围,轻量级,比较适合描述某个小界面(局部界面)

2> 相同点:本质都是转成代码

4.File's Owner的使用步骤
1> 在xib文件中设置File's Owner的class属性(目的是在xib中能找到Owner的方法)
2> 建立File's Owner 跟 控件之间的联系
3> 利用代码加载xib,传递Owner参数(类型一定要匹配)

五、类的设计
* 将自己的内部设计封装起来,不让外界太关心内部的实现细节