iOS General

大纲

  • @property
    • readwrite, readonly
    • strong,copy, weak, retain, assign, unsafe_unretained
    • nonatomic, atomic
    • nullable, nonnull
    • @synthesize, @dynamic
  • 内存管理
    • ARC
    • MRC
    • CFRelease
  • 架构模式
    • MVC
    • MVP
    • MVVM
  • 设计模式 Controller
    • 代理模式
      • Delegate + Protocol
        • 函数回调代码块
        • Block
        • 观察者
        • Observer
    • 消息中心
      • NotificationCenter
        • 单例
        • UIApplication
  • 模型设计 Model
    • 业务层
      • Model -> Controller -> UI
    • 模型层
      • Data -> Json -> Model
    • 数据层
      • Socket -> Data
  • 用户界面 View
    • 布局
      • Code
      • AutoLayout
      • Autoresizing
      • Storyboard, Xib
    • 绘图
      • UIBezierPath + Layer
      • UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)
      • CoreImage
    • 动画
      • UIView animateWithDuration:animations{};
      • CoreAnimation
      • Timer, RunLoop
  • 数据缓存 Cache
    • 内存缓存
    • 硬盘缓存
  • 程序控制
    • 数据统计, 用户行为
    • 版本控制, Api淘汰
    • Web + Native
    • Lua 热更新
  • 多线程
    • GCD
    • NSOperationQueue
    • NSThread
  • 代码规范

    //变量
    @property (nonatomic, strong) UIView *calendarView;
    
    //函数
    - (NSString *)funcWithParam:(NSString *)param 
                      NextParam:(NSString *)nextParam 
    {
        return param;
    }
    
    //枚举
    typedef NS_ENUM(NSUInteger, MyEnum) {
        MyEnumValueA = 1,
        MyEnumValueB = 1 << 1,
    };    
    
    //Block
    typedef void(^MacbookProBlock)(NSString *userName);
    
    @property (nonatomic, copy) MacbookProBlock macbookProBlock;
    
    _macbookProBlock = ^(NSString *userName) {
      //Nothing
    };
    
  • 代码配置和管理

    • CocosPods
    • Framework, Lib
    • iPhone, iPad, watch 协同开发
    • 语言配置 -Objc
    • 递归引入 Library Search Path
  • DeBug
    • 异常保护
    • 崩溃内存地址反查
    • Xcode instruments
      • Leaks
      • Core Animation