2017年iOS提高

1.全局常量正规写法:全局变量不能定义在自己类中,开发中便于管理所有的全局变量,通常搞一个GlobeConst文件,里面专门定义全局变量,统一管理,要不然项目文件多不好找。

这里写图片描述

image

2.类方法中调用实例方法


[[[self class] alloc] 实例方法];

3.alert的取消注意点

 [_alert dismissViewControllerAnimated:YES completion:^{
        _alert = nil;
    }];

其实这个代码可以这样写,完成消失视图后,把这个alert赋kong,这个内存优化了一点

 [_alert dismissViewControllerAnimated:YES completion:nil];
 // 一般我们是这样,但其实这时候的_alert没有赋空,还是占着内存的

1.对于NSLog,有时候我们测试,确实需要打上很多,但是有时候只需要哪里输出就可以,所以就会出现这些不太专业的,所以在测试完建议去掉,留下有信息量的输出

                    NSLog(@"------")

补充,对于系统的nslog我是比较少用的,我用的是第三方的NSLogger,不懂先github再百度看看是怎么回事,主要优点就是有单独的客户端输出系统,这样大面积的看输出比较爽

2.高封装,比如我有两个数组A和B,然后需要处理这个两个数组变成C数组,一般人的做法就是写个方法,方法里面直接调用A数组和B数组,返回C数组,然后控制器就这样直接调用这个方法了,
我的想法是,要有可复用性,封装性,所以这个方法应该是传两个参数,参数就是A数组和B数组

Snip20170427_1.png

3.循环语句注释问题


    while (i<n && q<m) {
        if (q == -1 || T[i] == P[q]) {
            i++;
            q++;
        }else {
            q = next[q];
        }
    }// end while

补充:可以在

if(){ // begin if

}// end if

// 多层嵌套
if() { //begin one if
    if() { // begin two if
    } // end two if
}// end one if

4.为了防止block的循环引用,我们一般在block里面不会直接用self,
我们是用

__weak typeof(self) weakSelf = self;

但是每次我们要用这个,就得声明一下,好麻烦,这个变量又没法声明成全局,所以我们的解决方法是声明成宏

在宏文件中写

#define WeakSelf __weak typeof(self) weakSelf = self;

使用

- (void)loadNet {

//    __weak __typeof(self) weakSelf = self;
    // 加载网络课表数据
    [_schoolTimeData loadSchoolTimeTable:^(id  _Nullable resultData) {
        WeakSelf;
        // 加载coll视图
//        [weakSelf setUpCollectionView];
        [weakSelf setUpCollectionView];

    }];


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值