iOS开发小记(十四)

网络层封装

BaseMessage
需求是什么?
1,取消功能;
2,加载提示;
3,请求前判断网络;
4,错误时,有业务层面错误,有http层错误;
5,和业务无关;

请求的时候,带上自己的delegate。
center根据delegate可以做分类请求。

LYHTTPAPIDelegate

  • (BOOL)isStatusCodeOK:(id responseObject);
  • (void)onHTTPerror:(NSError* error);
  • (void)onProgress:(NSProgress* progress);
    LYHTTPAPICenter

layoutSubviews

addSubview会触发layoutSubviews [不完全正确,当frame为0时是不会触发的]
你不要直接调用方法layoutSubviews,如果想要刷新,请调用setNeedsLayout或者layoutIfNeeded
一个view的frame值改变了,那么它的父类的layoutSubviews也会被执行
地址

NSRUNLOOP

GCD定时器

iOS 本地化应用程序(NSLocalizedString)

iOS应用程序生命周期(前后台切换,应用的各种状态)详解

IOS状态栏和导航栏的控制问题

回调设计

Cocoa Touch Target-Action 设计模式:改变状态的特定对象是用户界面对象的目标(target),方法是动作(action)。
业务开发应用较多的是delegate模式和Block代码块回调。

CMMotionManager

必须是单例,只创建一次,多次会影响接受结果。
运动传感器\加速度传感器\加速计(Motion/Accelerometer Sensor),环境光传感器(Ambient Light Sensor),距离传感器(Proximity Sensor),磁力计传感器(Magnetometer Sensor),内部温度传感器(Internal Temperature Sensor),湿度传感器(Moisture Sensor),陀螺仪(Gyroscope)
手背对着屏幕中心,右手坐标系。

循环引用

@implementation EditUserInfoViewController
{
     NSString *abc;
}

    @weakify(self);
    [[NSNotificationCenter defaultCenter] addObserverForName:NOTIFY_UI_IMAGE_PICKER_DONE object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
        @strongify(self);
        [self submitPhoto:self.myPickImage url:URL_MODIFY_FACE];
         abc = @“abc”;
    }];

posted on 2016-07-11 16:39  loying  阅读(185)  评论(0编辑  收藏  举报

导航