2017-06 总结

1、语法糖

UIImageView *img = [[UIImageView alloc]init];

self.imageView = img;

与下面比较

self.imageView = ({

UIImageView *img = [[UIImageView alloc]init];

img;

});

第二种这样看起来结构更清晰 第一种如果代码太多时间长的话 会忘记之前的逻辑关系 第二种很明确的体现了这种逻辑关系

下面案例

NSArray *arr = [NSArray arrayWithObjects:@"",@"", nil];

arr[0];

还可以快速存数据 只要是oc对象类型都可以

@[@"",@"",@""]; 字符串存储

@[arr,arr1,arr2]; 对象存储

NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"",@"", nil];

dic[@""];

@{@"key":@"value", .........};存储字符串

@{@"key":arr, ..........} 存储对象

字典不能给存储自定义类型 如果要存储自定义类型 需要重写 hash方法 

isEqual方法 以及copyWithZone方法 根据情况可选

我们可以通过这种方式快速的拿到数据 和存储数据 我们经常用但是却有很多人不知道这种是什么 其实这就是语法糖 语法糖顾名思义就是为了让程序员使用起来方便快捷 看起来清晰易懂

2、多利用枚举对象

枚举应用场景很多 最直观的体现就是进行 区分

比如一个控制器展示三个View 通过不同的跳转在一个控制器可以展示不同的View ,利用枚举进行标记 就可以简单实用这种方法

两种定义枚举的方式

typedef enum : NSUInteger {

aa = 0,//枚举

bb = 1,

cc = 2

} 枚举名称;

typedef NS_ENUM(NSUInteger, 枚举名称) {

a = 0,//枚举

b = 1,

c = 2

};

3、能用OC类型 就少用#define

第一 define会替换所有重名的数据

第二 difine没有类型声明

第三 OC类型 有类型声明 明了

4、extern static  const  修饰 

extern 表示一个链接 也就是说用extern修饰的类型 在全局任何位置都可以访问到 不用担心找不到值 比如做一个全局标记 例子可以参考 UICollectionView 中注册页眉页脚的标记 UICollectionElementKindSectionHeader,UICollectionElementKindSectionFooter

static 表示在当前类全局访问变量 并且在程序运行期间不会被销毁 内存分配为 全局区(静态区) 用来保存值最好

const 修饰的类型 表示不可以被修改 如果修改则会有错误提示 用来使用不可以被修改的值最方便

5、分段控制器控制多个view的展示

整体的思路就是 :

1、给主控制器加入多个子控制器

2、初始化一个UIViewController 用来存放子控制器

3、根据点击的坐标来取出对应的子控制器 并且展示在View上

你可能感兴趣的:(2017-06 总结)