首页 > 代码库 > 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary
NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎么学习它们呢?
我认为学习这些常用的类,使用类比的方法就行了,只要学会一个类,就能类比另外两个类了..
比如,NSString和NSMutableString的可变与不可变,主要区分的标准是,它们本身是不是可以变,可变的一般都能增,删,改,而不可变的方法主要是创建,查看,得到元素个数或者长度等等;
命名规则
NSString
第一,创建 initWithFormat或者stringWithFormat
第二,求字符串长度 length
第三,判断字符串是否相等 isEqualToString
第四,字符串替换 stringByReplacingOccurrenceOfString:withString:
第五,字符串比较 compare 返回值枚举
第六,字符串拼接 stringByAppendingFormat
第七,求字符 substringFromlndex
第八,查询字符串 rangeOfString
第九,前缀,后缀 hasPrefix hasSuffix
第十,字母大写 uppercaseString
NSMutableString 可变字符串
第一,创建 使用父类继承的方法或者使用自己的创建方法 initWithCapacity
第二, 增 insertString:atlndex: /////////////////
第三, 删 deleteCharacterslnRange:
第四, 改 replaceCharacterslnRange:
NSArray 容器 只能存储对象(继承自NSObject的类) 不可变的数组 不能添加 不能删除,不能修改,
第一,创建 initWithObjects: arrayWithObjects:
第二,看元素 ,objectAtIndex:
第三,数组个数, [array count]
第四,排序 [sortedArrayUsingSelector: ] 比较字符串直接用compare,如果比较person,就需要重写比较方法
[sortArrayUsingComparator: ]block作为参数排序,优先使用这个
NSMutableArray 可变字符串
第一,增(添加), addObject
第二,删 removeObjectAtIndex: removeObject removeAllObjects
第三,插入 insertObject: atIndex:
第四,替换 replaceObjectAtlndex: withObject:
第五,交换 exchangeObjectAtIndex:(目的串) withObjectAtIndex:(来源串)
NSDictionary 不可变字典
第一,创建 + dictionaryWithObject:forKey: – initWithObjectsAndKeys:
第二,看键值对个数 - count
第三,通过键获取值 -objectForKey;
NSMutableDictionary 可变字典
第一,创建 initWithCapacity
第二,添加(增) setObject: forKey:
第三,删 removeObjectForKey:
第四,改 setObject: forKey;
collection 集合(容器)
包括 Array(有序容器) Dictionary(无序容器) set(集合)
NSValue , NSNumber 容器,转换作用
NSValue 转换结构体为对象
NSNumber 转换基本数据类型为对象
NSSet集合 无序而且不重 可以用来排除重复
还有一个可以用来计算重复多少次的子类
使用 —s复数的方法 一般返回值是 用新建的数组存起来
#pragma mark -----------创建NSCountedSet 能记录元素的重复次数
NSCountedSet * countSet = [NSCountedSetsetWithObjects:@"1",@"2",@"3",@"1",@"1",nil];
NSLog(@"countForObject = %ld",[countSetcountForObject:@"1"]);
#pragma mark -----------快速枚举(遍历)
// for (<#type *object#> in <#collection#>) {
// <#statements#>
// }
//数组 上面object是元素 //字典 上面object是key
最近关于封装,也有一些新的认识,具体如下:就是把main函数里面的代码封装到另一个新的类.然后在main函数里面调用方法就行了
就像C语言的函数一样
如果有两个或两个以上初始化方法,就用指定初始化方法,指定初始化方法,以参数多的那个为指定方法.