// NSNumber 对象 由于数组不能存储基本数据类型,所以就用到NSNumber对象
void NSnumberTest(){
//1.NSNumber初始化
//类方法:自动放入autoreleasepool中
NSNumber * num1=[NSNumber numberWithInt:100];
NSLog(@"num1=%@",num1);
//实例方法
NSNumber * num2=[[NSNumber alloc]init];
NSLog(@"num2=%@",num2);
[num2 release];
//2.NSNumber->基本数据类型
int value1=[num1 intValue];
double value2=[num1 doubleValue];
NSLog(@"value1=%d",value1);
NSLog(@"value2=%f",value2);
//3.isEqualToNumber: 用来比较两个对象是否相等
NSNumber * num3=[NSNumber numberWithInt:100];
NSNumber * num4=[NSNumber numberWithDouble:100.0];
if ([num3 isEqualToNumber:num4]) {
NSLog(@"两个对象值相等");
}else{
NSLog(@"两个对象值不相等");
}
if ([num3 isEqualToNumber:num4]) {
NSLog(@"两个对象值相等");
}else{
NSLog(@"两个对象值不相等");
}
//4.Compare: 得到两个对象比较的关系
NSLog(@"%ld",[num3 compare:num4]);
//注意不能重新初始化已经存在的NSNumber对象,默认NSNumber对象为常量指针
}
// NSString 对象 不可变字符串
// OC中提供的NSString类是一个UniChar(2字节)字符串(也就是字符串可以任意类型字符组成)
// %@ 默认调用description方法
void NSStringTest(){
//1、不可变字符串初始化
// 常量区字符串
NSString *str1=@"first string";
NSLog(@"%@",str1);
// 实例方法
NSString *str2=[[NSString alloc]initWithString:@"second string"];
NSLog(@"%@",str2);
[str2 release];
// 实例方法 以特定格式初始化字符串
//用整数、float初始化一个字符串
NSString *str3=[[NSString alloc]initWithFormat:@"%d",100000];
NSLog(@"%@",str3);
//用对象初始化一个字符串
NSString *str4=[[NSString alloc]initWithFormat:@"%@",[NSDate date]];
NSLog(@"%@",str4);
[str3 release];
[str4 release];
// 类方法 默认放入自动释放池,不用release
NSString *str5=[NSString stringWithFormat:@"thread string"];
NSLog(@"%@",str5);
NSString *str6=[NSString stringWithFormat:@"%f",200.123];
NSLog(@"%@",str6);
// 2、连接两个字符串
NSString *str7=@"Hello ";
NSString *str8=@"world";
NSString *str9=[str7 stringByAppendingString:str8];
NSLog(@"%@",str9);
NSLog(@"%@",str7);
NSLog(@"%@",str8);
// 3、比较两个字符串
if ([str7 isEqualToString:str8]) {
NSLog(@"两个对象值相等");
}else{
NSLog(@"两个对象值不相等");
}
//4.Compare: 得到两个对象比较的关系
NSLog(@"%ld",[str7 compare:str8]);
//5.忽略大小写 caseInsensitiveCompare
NSLog(@"%ld",[str7 caseInsensitiveCompare:str8]);
//6.字符串全部转成大写(原字符串不变)
NSLog(@"%@",[str7 uppercaseString]);
//7.字符串全部转成小写(原字符串不变)
NSLog(@"%@",[str7 lowercaseString]);
//8.subStringFromIndex:从某一个位置开始截取字符串,到最后
NSString *str10=@"123456789";
NSLog(@"%@",[str10 substringFromIndex:5]);
//9.subStringToIndex:从第一个位置开始截取字符串,到Index
NSLog(@"%@",[str10 substringToIndex:5]);
//10.subStringWithRange:从某一个位置开始截取多长的字符串
NSLog(@"%@",[str10 substringWithRange:NSMakeRange(2, 6)]);//2:开始截取的位置 6:截取的长度
}
// NSMutableString :可变字符串 继承自NNString
void NSMutableStringTest(){
// 1.初始化
// 实例方法
NSMutableString *str1=[[NSMutableString alloc]initWithCapacity:10];//内存自动管理
// 类方法
NSMutableString *str2=[NSMutableString stringWithCapacity:10];
//追加
[str2 appendString:@"Hello "];
[str2 appendString:@"world"];
NSLog(@"%@",str2);
//插入
[str2 insertString:@"sssssssssss" atIndex:6];
NSLog(@"%@",str2);
//删除
[str2 deleteCharactersInRange:NSMakeRange(2, 6)]; // 2:开始删除位置 6:删除长度
NSLog(@"%@",str2);
//直接修改(替换)字符串内容
[str2 setString:@"hahahaha"];
NSLog(@"%@",str2);
}
// NSArray:数组,对象的集合(不能存放基本数据类型)
// 类型可以不相同,加入数组中对象引用计数+1,从数组中移除对象,引用计数-1
void NSArrayTest(){
// 1.初始化
// 实例方法
NSString *str1=@"abcdefg";
NSNumber *num1=[NSNumber numberWithInt:123456];
NSURL *url1=[NSURL URLWithString:@"http://www.baidu.com"];
NSArray *array1=[[NSArray alloc]initWithObjects:str1,num1,url1, nil];
// 类方法
NSArray *array2=[NSArray arrayWithObjects:str1,num1,url1, nil];
//2.返回数组元素个数
NSLog(@"array1数组元素个数:%ld",[array1 count]);
//3.根据下标获得元素对象
NSLog(@"%@",[array1 objectAtIndex:0]);
//4.根据元素对象获得所在位置
NSLog(@"对象获得所在位置:%ld",[array1 indexOfObject:str1]);
//5.快速遍历(从缓存读数据)
for (id element in array2) {
NSLog(@"%@",element);
}
NSLog(@"========================");
NSLog(@"%@",array2);
//6.数组排序
NSArray * array3=[NSArray arrayWithObjects:@"23",@"9",@"56",@"33",@"78", nil];
NSArray * array4=[array3 sortedArrayUsingSelector:@selector(compare:)];
for (id element in array4) {
NSLog(@"%@",element);
}
}
// NSMutableArray:可变数组,继承自NSArray
// 可变数组使用前需要先开辟空间
void NSMutableArrayTest(){
//1.初始化
// 实例方法
NSMutableArray *array1=[[NSMutableArray alloc]initWithCapacity:10];
// 类方法
NSMutableArray *array2=[NSMutableArray arrayWithCapacity:10];
//2.添加元素(默认添加数组尾部)
[array1 addObject:@"hehe"];
[array1 addObject:@"haha"];
NSLog(@"%ld",[array1 count]);
//3.插入元素
[array1 insertObject:@"jack" atIndex:1];
//4.根据下标删除元素
// [array1 removeObjectAtIndex:1];
//5.删除数组中最后一个元素
// [array1 removeLastObject];
//6.删除数组中所有元素
// [array1 removeAllObjects];
[array1 removeObject:@"haha" inRange:NSMakeRange(0, 2)];
for (id element in array1) {
NSLog(@"%@",element);
}
}
// 不可变字典:NSDictionary 标准的key valude 键值对
// key 一般使用字符串
// value:任意类型对象,不能为nil
// 每一组key value 用’,‘分隔
void NSDictionaryTest(){
// 初始化
NSDictionary * dic=[[NSDictionary alloc]initWithObjectsAndKeys:@"zhangsan",@"name",@"man",@"sex",@"22",@"age", nil];
//获取所有key
NSArray *keyArray=[dic allKeys];
// 根据key 得到value
NSArray *valueArray=[dic allValues];
// 根据key查找对相应的value
NSLog(@"%@",[dic objectForKey:@"name"]);
// 根据value吧key做一个排序,得到一个排好序的key集合
NSArray* sortkeyArray=[dic keysSortedByValueUsingSelector:@selector(compare:)];
NSLog(@"%@",keyArray);
for (id elem in sortkeyArray) {
NSLog(@"%@",elem);
}
}
// 可变字典 NSMutableDictionary
void NSMutableDictionaryTest(){
// 添加key value
NSMutableDictionary *dic=[[NSMutableDictionary alloc]initWithCapacity:10];
[dic setObject:@"zhangsan" forKey:@"name"];
[dic setObject:@"man" forKey:@"sex"];
[dic setObject:@"talk" forKey:@"enjoy"];
// 根据key删除value
[dic removeObjectForKey:@"enjoy"];
NSArray *keyArray=[dic allKeys];
NSLog(@"%@",keyArray);
[dic release];
}