- NSString
-
创建空的字符串
- NSString *str = [NSString new]
- NSString *str = [NSString string]
- NSString *str = [[NSString alloc] init]
-
NSString *str = @“jack“
-
在内存中,创建时,会先查看内存中有没有。如果有,直接赋值,没有就创建。
-
字符串不可修改,每次修改字符串,会创建一个新的字符串
-
引用计数为0时,自动释放。
-
属性:
- length
- UTF8String:C语言字符串,const类型
-
C语言字符串:
- 是字符数组,通常使用char数组或指针来表示。
- 只能用标准库函数,例如strlen、strcpy、strcat等。
- 不可更改
-
类方法:
- stringWithUTF8String:将c语言字符串转化为OC字符串 ,可将用户输入转化;
- stringWithFormat:拼接字符串,不输出,使用方式类似于 printf 函数,可以通过占位符插入变量的值。
-
NSString *str = [NSString stringWithFormat:@"大家好,我叫%@,我今年%d岁", name, age];
- 对象方法
- length:字符串长度,类型为NSUIntrger, %lu, 其实就是unsigned long
- characterAtIndex: 取指定下标字符,类型为unichar, C, 其实是unsigned short, 占两个字节,中文也占两个字节
- isEqualToString:判断两个字符串是否相同, 返回BOOL型,不要用==比较
- compare:比较字符串大小, 返回NSComparisonResult类型,枚举类型,可用int接收。-1小于,0等于,1大于
- compare: operation: 可忽略大小写、比较字符串里的数字
- hasPreFix:判断是否有某个前缀
- hasSufFix:判断是否有某个结尾
- rangeOfString:返回第一次出现某个子串的范围,NSRange类型。若没找到,location为NSUInteger的最大值,就是NSNotFound,或者length为0
- rangeOfString: operation: 可以从后往前搜
- subStringFromIndex:从指定下标截取到末尾
- subStringToIndex:截取到指定下标,不包括末尾
- subStringWithRange: 截取一段
- stringByReplaceingOccurrenceOfString :替换子串,返回一个新的字符串,原来的字符串不变
- int/double/float/integer/boolValue:转型。转数字时,只转从头开始的数字
- stringByTrimmingCharactersInset:去掉前后空格或小写字符或大写字符或指定字符、中间不去
- upper/lowerCaseString:转大、小写
- componentsSeperatedByString: 将字符串中用符号隔开的分割,返回NSArray
- dataUsingEncoding: NSUTF8StringEcoding:转二进制,返回NSData类型
- NSMutableString:继承于NSString,具有可变性,改字符串不创建新的
- 不能把@"hhhh"(NSString类型)赋值给NSMutableString,子类指针,不能指向父类对象
- 对象方法:
- appendString:追加
- appendFormat:[str appendFormat: @"我今年%d岁",age]
- 只在做大批量字符串拼接的时候使用,NSString中,相同的字符串是大家共用的,效率高
- NSRange:{下标,长度}
- NSRange range = {3, 7}
- NSRange range; range.location = 3; range.length = 7;
- NSMakeRange(loc,len)
- NSArray
- 只能存oc对象,同一个数组可以存不同类型的
- 初始化之后,不可增删改
- 连续存储
- 初始化:
- NSArray *arr = [ NSArray arrayWithObjects: @"jack", @"lili", nil],以nil结尾,表示结束,nil本质是0
- NSArray *arr = @[@"jack", @"lili"]
- 可以使用下标访问,越界会报错
- 属性:
- count:元素个数
- firstObject:数组第一个元素,当数组为空时,返回nil
- lastObject:最后一个元素
- 类方法:
- arrayWithContentsOfFile:从文件中读数组
- 对象方法:
- objectAtIndex:取指定下标元素
- containsObject:是否包含某个元素
- indexOfObject:返回元素首次出现的下标,如果没有,返回NSNotFound
- componentsJoinedByString:将数组里的元素用一个string拼接起来
- writeToFile:写入文件
- 遍历
- for(NSString * str in arr)
- enumerateObjectsUsingBlock:传一个bloc
- NSMutableArray:继承于NSArray
- 可以增删改
- NSMutableArray *arr = @[@"jack", @"lili"],这样不可以
- 对象方法:
- addObject:新增元素
- addObjectsFromArray:将另一个数组的元素一个一个加进来
- insertObject:在指定位置插入
- removeObjectAtIndex: 在指定位置删除
- removeObject:删除指定元素
- removeObject: inRange: 删除指定元素,指定范围
- removeLastObject:删除最后一个元素
- NSNumber:用来包装基本数据类型,然后存到NSArray中
- 基本数据类型加一个@符号,就变成了NSNumber类型:@10 等价于 [NSNumber numberWithInt: 10]
- 若是变量,要加括号: @(num)
- 获取基本数据值的方法:int/double..Value
- 类方法:
- numberWitnInt/Double/Float/
- 比较方法
- (NSComparisonResult)compare:(NSNumber *)otherNumber`
- (BOOL)isEqualToNumber:(NSNumber *)number`
- NSValue:将结构体包装成oc对象
- NSDictionary:
- 键必须是遵守了NSCopying协议(实现浅拷贝copyWithZone方法)的对象
- 值是oc对象
- 初始化:
- dictionaryWithObjextsAndKeys: 值,键,值,键,nil
- @{键:值,键:值}
- []访问
- 属性:
- count
- 对象方法: objectWithKey:根据键查值,没有返回nil
- 遍历:(for id item in dic)//item是键,dic[item]是值
- NSMutableDictionary:可以增删