OC篇--数据类型
来源:互联网 发布:哪个软件直播笑傲江湖 编辑:程序博客网 时间:2024/04/30 11:04
从转岗做开发以来,基本从事移动端APP开发和后端接口开发;一是因为钟爱移动端开发,二是JAVA和OC学习相对简单上手快。
从OC篇开始,整理和总结基本开发知识;一来自己巩固,二来为移动端新开发者分享。
OC的数据类型,分为基本数据类型、对象数据类型和id类型。
【基本数据类型】
1、基本数据类型:
1)整型:int 数字前加负号表示负整型
2)字符型:char
3)短整型:short
4)长整型:long
5)浮点型:float
6)双精度:double
7)有符号型:signed
8)无符号型:unsigned
9)枚举类型:enum
10)通用指针类型:id
11)结构体类型:struct
12)无返回值或无参类型:void
13)共用体(联合)类型:union
注:基本数据类型的格式化字符
整型(int) --d%、i%
短整型(short int)--hd%、hi%
长整型(long int)--ld%、li%
无符号整型(unsigned int)--u%
无符号短整型(unsigned short)--hu%
无符号长整型(unsigned long)--lu%
浮点型(float)--f%
双精度型(double)--f%
字符型(char)--c%
2、对象数据类型
1)字符串 NSString
创建字符串: NSString *str = @"string";
NSString *str2 = [NSString stringWithString:str];
NSString *str3 = [[NSString alloc] initWithString:@"hello"];
NSString *str4 = [[NSString alloc] initWithFormat:@"hello%d",2];
字符串拼接:-(NSString* ) stringByAppendingString:(NSString *) aString;
-(NSString *) stringByAppendingFormat:(NSString *) format...;
NSString *str5 = [str3 stringByAppendingFormat:@":%d---%d",@"tom",@"jerrey"]; --str5的值: hello:tom---jerrey
字符串截图:-(NSString* ) substringToiIndex:(unsigned)index; ---从字符串的开头到index位置,不包括索引位;即:0到index-1
-(NSString* ) substringFromIndex:(unsigned)index; --从index开始到字符串末位,包含索引位
-(NSString* ) substringWithRange:(NSRange)range; --截取字符串内range范围内的字串
字符串替换:NSString *str6 = @"password";
NSRange *range = NSMakeRage(3,3);
NSString *str7 = [str6 stringByReplacingCharact
字符串比较:-(NSString* ) isEqualToString:(NSString* ) aString;
-(NScomparsionResult) compare:(NSString *) aString;
2)日期 NSDate
创建日期类型:NSDate *date = [NSDate date]; --返回当前时间
date = [NSDate dateWithTimeIntervalSinceNow:10]; --返回当前时间10S后的时间
date = [NSDate dateWithTimeIntervalSince1970:10]; --返回1970-1-1 00:00:00时间10S后的时间
date = [NSDate distanceFuture]; --随即返回一个比较遥远的未来时间
date = [NSDate distancePast]; --随机返回一个比较遥远的过去时间
时间比较: NSDate *date2 = [NSDate date];
NSDate *earlierDate = [date2 earlierDate date];
NSDate *laterDate = [date2 laterDate date];
BOOL isEqual = [date2 isEqualToDate:date];
时间差: NSTimeInterval secondsInterval = [date2 timeIntervalSinceDate:date];
3)字典
不可变字典:NSDictionary
字典创建:NSDictionary *dict1 = [NSDictionary dictionaryWithObject:@"velue" forKey:@"key1"];
NSLog(@"key1的值:%@\n",[dict1 objectForKey:@"key1"]);
NSDictionary *dict2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"aaa",@"keya",@"bbb",@"keyb", nil];
NSLog(@"keya的值:%@\n",[dict2 objectForKey:@"keya"]);
NSArray *valueArray = [NSArray arrayWithObjects:@"value1",@"value2",@"value3",@"value4", nil];
NSArray *keyArray = [NSArray arrayWithObjects:@"key1",@"key2",@"key3",@"key4", nil];
NSDictionary *dict3 = [[NSDictionary alloc]initWithObjects:valueArray forKeys:keyArray]; //通过现有的对象数组创建字典对象
for(NSString *key in dict3){
NSString *value = [dict3 objectForKey:key];
NSLog(@"%@的值:%@\n",key,value);
}
NSDictionary *dict4 = [NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray]; //通过类方法直接创建字典对象
for(NSString *key in dict4){
NSString *value = [dict4 objectForKey:key];
NSLog(@"%@的值:%@\n",key,value);
}
字典比较:BOOL isEqual = [dict1 isEqualToDictionary:dict2];
NSLog(@"isEqual的值:%hhd",isEqual);
可变字典:NSMutableDictionary
字典创建:NSMutableDictionary *mDict1 = [[NSMutableDictionary alloc]initWithObjects:valueArray forKeys:keyArray];
NSLog(@"key1的值:%@\n",[mDict1 objectForKey:@"key1"]);
NSMutableDictionary *mDict2 = [NSMutableDictionary dictionaryWithDictionary:dict4];
NSLog(@"key1的值:%@\n",[mDict2 objectForKey:@"key1"]);
NSMutableDictionary *mDict3 = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"a",@"akey",@"b",@"bkey",@"c",@"ckey", nil];
NSLog(@"akey的值:%@\n",[mDict3 objectForKey:@"akey"]);
字典比较:BOOL isEqual2 = [mDict2 isEqualToDictionary:mDict1];
NSLog(@"isEqual2的值:%hhd\n",isEqual2);
改变字典值:[mDict3 setObject:@"d" forKey:@"dkey"];
[mDict3 setObject:@"e" forKey:@"ekey"];
for(NSString *key in mDict3){
NSString *value = [mDict3 objectForKey:key];
NSLog(@"%@的值:%@",key,value);
}
删除字典值:[mDict1 removeObjectsForKeys:keyArray];//删除所有值
NSLog(@"mDict1里含值的个数:%d",[mDict1 count]);
[mDict2 removeAllObjects]; //删除所有值
NSLog(@"mDict2里含值的个数:%d",[mDict2 count]);
[mDict3 removeObjectForKey:@"ekey"]; //删除某个key对应的值
NSLog(@"mDict3里含值的个数:%d",[mDict3 count]);
4)数组
不可变数组:NSArray
创建:NSArray *array1 = [[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
for(int i = 0;i< [array1 count];i++){
NSLog(@"array1的第%d值是:%@",i,array1[i]);
}
NSArray *array2 = [[NSArray alloc]initWithArray:array1];
for(int i = 0;i< [array1 count];i++){
NSLog(@"array2的第%d值是:%@",i,array2[i]);
}
取数组值:NSString *value = [array1 objectAtIndex:0]; --下标从0开始
NSLog(@"array1的第1值是:%@",value);
可变数组:NSMutableArray
创建:NSMutableArray *mArray1 = [[NSMutableArray alloc]initWithArray:array1];
for(int i = 0; i < [mArray1 count];i++){
NSLog(@"mArray1的第%d个值是:%@",i,mArray1[i]);
}
NSMutableArray *mArray2 = [[NSMutableArray alloc]initWithObjects:@"a",@"b",@"c",@"d",@"e", nil];
for(int i = 0; i < [mArray2 count];i++){
NSLog(@"mArray2的第%d个值是:%@",i,mArray2[i]);
}
改变数组:[mArray1 addObject:@"6"];
for(int i = 0; i < [mArray1 count];i++){
NSLog(@"mArray1的第%d个值是:%@",i,mArray1[i]);
}
[mArray2 addObject:@"f"];
for(int i = 0; i < [mArray2 count];i++){
NSLog(@"mArray2的第%d个值是:%@",i,mArray2[i]);
}
[mArray1 addObjectsFromArray:mArray2];
for(int i = 0; i < [mArray1 count];i++){
NSLog(@"mArray1的第%d个值是:%@",i,mArray1[i]);
}
删除数组值:[mArray1 removeObject:@"1"]; //删除@“1”
[mArray1 removeLastObject]; //删除数组最后一个值
[mArray1 removeObjectAtIndex:3]; //删除数组第三个值
[mArray1 removeAllObjects]; //删除数组所有值
3、id类型
id类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型
- OC篇--数据类型
- oc 数据类型
- OC数据类型
- OC数据类型
- 数据类型 oc
- OC 数据类型
- OC数据类型
- OC基础数据类型-NSDictionary
- OC中的数据类型
- OC中的block数据类型
- oc 数据类型转换
- OC的常用数据类型
- 1、OC基本数据类型
- OC数据类型转换学习
- OC中的数据类型转换
- oc常见数据类型
- oc数据类型的转换
- [OC学习笔记]数据类型
- 水平居中总结-不定宽块状元素方法
- SQL Server迁移登录名没有密码的解决方案
- Debugging segmentation fault
- 数论--简述同余关系及其部分性质
- 谈谈Android里的Context的使用!
- OC篇--数据类型
- u-boot-2016.05移植:(5)、支持DM9000网卡
- 使用JDBC对数据库进行CRUD
- wireshark怎么抓包、wireshark抓包详细图文教程
- easyUI批量删除,向后台传数组
- 15. 3Sum
- 欢迎使用CSDN-markdown编辑器
- typeof和instanceof用法
- C++ String类实现以及初始化原理和析构顺序