数字
int NSInteger NSUInteger的区别
1.这三个都是基本类型,声明的时候都不带*号
2.int和后两者的区别是,用int声明的时候要考虑机型,在32位机里是int类型,在64位里就有可能是long型,而用后两者后,就不用考虑这个问题了,他们会自动判别
3.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。
基本类型和NSNumber的区别
1.NSNumber是一个类
2.NSNumber可以将基本数字类型转化为对象,从而可以调用NSNumber中的相关方法
NSNumber :
初始化:NSNumber *intNumber1 = @43;
字符串
NSString、NSMutableString区别
NSString在赋值之后不能修改其内容和长度,而NSMutableString可以动态的修改字符串内容和长度
NSString:
初始化:NSString *str1 = @"ABC3456789";
集合
NSArray 、NSMutableArray 区别
NSMutableArray 和 NSArray 是 ObjectiveC 中使用的数组类,前者是可变数组,后者是不可变数组
集合不能接受nil,nil是作为集合结束标识符。
NSArray(不可变)
初始化:
NSArray *array1 = @[@"aaa",@"bbbbb"];
NSArray *arr = [NSArray arrayWithObjects:@"one",@"two",@"three", nil];
类似Java中的ArrayList,可以存储不同类型的对象,一般情况下数组元素的类型是相同的,特点是有序、可重复。
NSMutableArray(可变的)
初始化: NSMutableArray *mutableArr = [NSMutableArray arrayWithObjects:@"one",@"two",@"three", nil];
派生于NSArray,理解为动态数组,提供增加、删除、插入、替换等语法糖。
字典
NSDictionary
初始化:
NSDictionary *dict1 = @{@"name1":@"cat",@"name2":@"dog"};
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"cat",@"name1",@"dog",@"name2", nil];
主要特点是不可变,如果集合初始化完成,将内容无法修改,无序。
NSMutableDictionary
初始化:NSMutableDictionary *dict = [NSMutableDictionary dictionary];
NSMutableDictionary是可变的,动态添加、更改、删除元素,因此不能使用字面量方式(@{})来创建一个可变字典
NSURL
URL(Uniform Resource Locator)中文意思是统一资源定位符,除了 http 协议之外,还有https/ftp/file协议用来访问一个资源。
在 OC 中,操作 URL 时候应该用专用的 NSURL 类,而不建议把 URL 当做字符串来手工解析。
NSDate
NSDate 可以用来表示时间, 用来进行一些常见的日期时间的处理
相关连接:
写给前端看的 iOS 梳理 (上) - 知乎 (zhihu.com)
(12条消息) 【IOS 开发】Objective - C 入门 之 数据类型详解_让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 )-CSDN博客