IOS开发工具 | 青训营笔记

83 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第2天

IOS开发工具 | 青训营笔记

Framework

四层框架

  1. Cocoa Touch触摸层 2. UIKit 3. MapKit 4. Notification
  2. Media媒体层:视频/音频/游戏 3. Metal 4. Core Graphic
  3. Core Services服务层 4. Foundation 5. Webkit 6. Core Location
  4. Core OS操作系统层:较少直接使用,一般由框架/库封装 5.Accelerate 6.CoreBluetooth 7.Security

Foundation框架

NSObject

  1. New方法:创建对象,返回值为创建对象的指针
  2. 类的本质
  3. 任何在内存中申请的空间都有自己的类型
  4. 代码段中存储类的步骤
  5. 创建Class对象,Class是Foundation框架中的类,用于存储类
    1. 将类的信息存储在Class对象中
      1. 类名
      2. 属性
      3. 方法
    2. Class对象和其他对象一样,也有isa指针,指向父类
  6. 通过class方法可以拿到存储类的Class对象
    1. 类方法Class c = [Person class];
    2. 对象方法Class c = [person class];
  7. Isa指针实际就是这存储类的Class对象的地址
  8. 注意:声明Class时不用加*,typedef中已经加了
  9. 用途
    1. 通过Class指针去调用类的类方法
      1. [c1 sayhi];
      2. [c1 new];

NSString,本质是一个类 (自学)

  1. 声明
    1. NSString* a  = @"jack"
  2. NSString类型指针变量:用于存储字符串地址
    1. %p:打印指针变量的值
    2. %@:打印指针变量指向的对象
  3. 常用类方法:
    1. + (instancetype)stringWithUTF8String:(const char*)nullTerminatedCString;
      1. instancetype:代表返回的是当前类的对象
      2. 将c字符串转换为OC字符串对象
    2. + (instancetype)stringWithFormat:(NSString *)format,...;
    3. [NSString stringWithFormat:@"%@,%d",name,age];
  4. 常用对象方法:
    1. length方法:返回NSUInteger,unsigned long
      1. NSString *str = @"中国你好";
      2. NSUInteger len = [str length];
      3. NSLog(@"len = %lu",len);
      4. 与C不同,中文占2个字节,算长度也算1
    2. characterAtIndex方法:返回unichar,unsigned short占两个字节
      1. unichar ch = [str characterAtIndex:2];
      2. NSLog(@"ch = %C",ch);可以打印中文
    3. 比较字符串内容相等,isEqualToString方法,返回BOOL
    4. ==判断地址,会出问题
      1. 判断字符串大小,compare方法,返回枚举,小-1,等0,大1

调试与断点

  1. Xcode断点+LLDB
  2. View Debugger