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  stringByReplacingCharactersInRange:range  withString:@"*"];  --str7的值:pas***rd

                    字符串比较:-(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类型可以表示任何类型,一般只是表示对象类型,不表示基本数据类型

 

 

                

0 0
原创粉丝点击