这是我参与「第四届青训营 」笔记创作活动的的第2天
IOS开发工具 | 青训营笔记
Framework
四层框架
- Cocoa Touch触摸层 2. UIKit 3. MapKit 4. Notification
- Media媒体层:视频/音频/游戏 3. Metal 4. Core Graphic
- Core Services服务层 4. Foundation 5. Webkit 6. Core Location
- Core OS操作系统层:较少直接使用,一般由框架/库封装 5.Accelerate 6.CoreBluetooth 7.Security
Foundation框架
NSObject
- New方法:创建对象,返回值为创建对象的指针
- 类的本质
- 任何在内存中申请的空间都有自己的类型
- 代码段中存储类的步骤
- 创建Class对象,Class是Foundation框架中的类,用于存储类
- 将类的信息存储在Class对象中
- 类名
- 属性
- 方法
- Class对象和其他对象一样,也有isa指针,指向父类
- 将类的信息存储在Class对象中
- 通过class方法可以拿到存储类的Class对象
- 类方法Class c = [Person class];
- 对象方法Class c = [person class];
- Isa指针实际就是这存储类的Class对象的地址
- 注意:声明Class时不用加*,typedef中已经加了
- 用途
- 通过Class指针去调用类的类方法
- [c1 sayhi];
- [c1 new];
- 通过Class指针去调用类的类方法
NSString,本质是一个类 (自学)
- 声明
- NSString* a = @"jack"
- NSString类型指针变量:用于存储字符串地址
- %p:打印指针变量的值
- %@:打印指针变量指向的对象
- 常用类方法:
- + (instancetype)stringWithUTF8String:(const char*)nullTerminatedCString;
- instancetype:代表返回的是当前类的对象
- 将c字符串转换为OC字符串对象
- + (instancetype)stringWithFormat:(NSString *)format,...;
- [NSString stringWithFormat:@"%@,%d",name,age];
- + (instancetype)stringWithUTF8String:(const char*)nullTerminatedCString;
- 常用对象方法:
- length方法:返回NSUInteger,unsigned long
- NSString *str = @"中国你好";
- NSUInteger len = [str length];
- NSLog(@"len = %lu",len);
- 与C不同,中文占2个字节,算长度也算1
- characterAtIndex方法:返回unichar,unsigned short占两个字节
- unichar ch = [str characterAtIndex:2];
- NSLog(@"ch = %C",ch);可以打印中文
- 比较字符串内容相等,isEqualToString方法,返回BOOL
- ==判断地址,会出问题
- 判断字符串大小,compare方法,返回枚举,小-1,等0,大1
- length方法:返回NSUInteger,unsigned long
调试与断点
- Xcode断点+LLDB
- View Debugger