Objective-C语法之常用数据的那些事儿(二)

Objective-C语法之常用数据结构


雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/585


由于工作重心发生了改变,Android开发暂时不会继续投入经历。MOMO最近在自学IOS游戏开发 哇咔咔~~目前还在学习阶段此篇文章主要用于备忘,欢迎各位大牛们给我多多虐虐我 互相学习~哇咔咔~~



在xcode中创建项目工程的方法在上一章已经介绍,着一篇主要介绍Objective-C语言中的一些常用数据结构


HelloWorldViewController.m类中


我们的测试语法代码添加在viewDidLoad方法中

[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     //程序启动界面显示之前会调用这个方法  
  5.         //所以将语法代码添加在这里  
  6. }  




1.整型 (int) 浮点型 (float, double)  短长整型(short, long)


常用数据类型与c语言基本一样 难怪是c语言的超集


[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     //程序启动界面显示之前会调用这个方法  
  5.     //所以将语法代码添加在这里  
  6.       
  7.     //整型  
  8.     int i = 100;  
  9.     //浮点型  
  10.     float f = 1.1;  
  11.     //双浮点型  
  12.     double d = 2.2;  
  13.     //短整型  
  14.     short int si = 200;  
  15.     //长整型  
  16.     long long int ll = 123324123234123L;  
  17.       
  18.       
  19.     //输出数据与内存中所占字节数  
  20.     //整型  
  21.     NSLog(@"i = %d size = %lu byte ",i, sizeof(i));  
  22.     //浮点型  
  23.     NSLog(@"f = %f size = %lu byte",f,sizeof(f));  
  24.     //双浮点型  
  25.     NSLog(@"d = %e size = %lu byte",d,sizeof(d));  
  26.     //短整型  
  27.     NSLog(@"si = %hi size = %lu byte",si,sizeof(si));  
  28.     //长整型  
  29.     NSLog(@"ll = %lli size = %lu byte",ll,sizeof(si));  
  30. }  


Log打印结果



2.字符串 NSString*  与  char* 


[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     //程序启动界面显示之前会调用这个方法  
  5.     //所以将语法代码添加在这里  
  6.     NSString * str = @"MOMO";  
  7.     char *c = "15810463139";  
  8.       
  9.     //将NSString 转换为char *  
  10.     const char *change = [str UTF8String];  
  11.       
  12.     //输出log  
  13.     NSLog(@"str = %@ size = %lu", str,sizeof(str));  
  14.     NSLog(@"c = %s size = %lu", c, sizeof(c));  
  15.     NSLog(@"change = %s size = %lu", change, sizeof(change));  
  16.       
  17.       
  18. }  

Log打印结果




字符串格式化

使用stringWithFormat 方法来格式化字符串 

意思就是将整型 字符型 等等 合并成一个NSString*类型

[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     //程序启动界面显示之前会调用这个方法  
  5.     //所以将语法代码添加在这里  
  6.     NSString * str = [NSString stringWithFormat:@"姓名:%@ 年龄:%d 邮箱:%@" ,@"雨松momo",25,@"xuanyusong@gmail.com"];  
  7.       
  8.     NSLog(@"str = %@",str);  
  9.       
  10. }  

Log 输出结果




3.布尔值

宏定义 真为YES 假为NO 

因为Objective-C 是C语言的超集 所以在代码中写 true 和false 也是可以运行通过的

这里毕竟是Objective-C 所以还是建议使用YES 和  NO



[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     //程序启动界面显示之前会调用这个方法  
  5.     //所以将语法代码添加在这里  
  6.       
  7.     bool a = false;  
  8.     bool b = true;  
  9.       
  10.     if(a == b)  
  11.     {  
  12.         NSLog(@"a与b相等");  
  13.     }  
  14.       
  15.     if(a != b)  
  16.     {  
  17.         NSLog(@"a与b不等");  
  18.     }  
  19.       
  20.       
  21.     bool c = YES;  
  22.     bool d = YES;  
  23.       
  24.     if(c == d)  
  25.     {  
  26.         NSLog(@"c与d相等");  
  27.     }  
  28.       
  29.     if(c != d)  
  30.     {  
  31.         NSLog(@"c与d不等");  
  32.     }  
  33.       
  34. }  



Log打印结果



4 .数组与字典

NSArray 数组: 使用它创建数组后,就不可以继续向这个数组中添加或者删除元素。

 这个数组中可以储存任意类型object的对象指针  但是不能用处储存数据类型 比如int bool char 等等

 下面这行代码中我将三个字符串和self 指针储存在了mArray这个数组中

[cpp]  view plain copy
  1. //初始化不可变数组  
  2. mArray =[[NSArray alloc] initWithObjects:@"雨松MOMO",@"15810463139",@"xuanyusong@gmail.com",self,nil];  


遍历方法一 : 很普遍java 语言 c 语言都这样来遍历

[cpp]  view plain copy
  1. int count = [mArray count];  
  2. for (int i = 0; i < count; i++) {  
  3.     NSLog(@"固定数组 %@", [mArray objectAtIndex:i]);  
  4. }  



遍历方法二: objective-c 2.0 引入的快速枚举法 不仅速度快 并且安全性高,推荐使用这种方式来遍历.


[cpp]  view plain copy
  1. for (NSString * str in mArray) {  
  2.      NSLog(@"固定数组 %@", str);  
  3. }  

打印Log信息,最后一项为self指针 ,所以将地址打印了出来。





NSMutableArray数组:它是一个可以变化的数组,数组创建完后还可以动态的向数组中添加与删除元素,并且可以向指定位置插入元素,基本上和链表差不多。


[cpp]  view plain copy
  1. //初始化可变数组  
  2. mListArray=[NSMutableArray array];  


addobject方法用于向数组中添加元素


[cpp]  view plain copy
  1. //添加数组  
  2. - (void)addArray: (NSObject *) str  
  3. {  
  4.     [mListArray addObject:str];  
  5. }  

 

removeObject方法用于删除元素


[cpp]  view plain copy
  1. //删除数组  
  2. -(void) deleteArray:(NSString *)str  
  3. {  
  4.     [mListArray removeObject:str];  
  5.       
  6. }  


replaceObjectAtIndex 方法可以修改数组中的某一个元素

第一个参数为 索引的id

第二个参数为修改对象的指针


[cpp]  view plain copy
  1. //修改数组中的元素   
  2. -(void)changeArray:(int)ID:(NSObject *) str  
  3. {  
  4.     [mListArray replaceObjectAtIndex:ID withObject:str];  
  5. }  

insertObject方法用于向数组中插入一个元素

第一个参数  插入对象的指针

第二个参数  插入的索引


[cpp]  view plain copy
  1. //向数组中插入一个元素   
  2. -(void)insertArray:(int)ID:(NSObject *) str  
  3. {  
  4.     [mListArray insertObject:str atIndex:ID];  
  5. }  



创建MyClass对象


[cpp]  view plain copy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.       
  5.      
  6.       
  7.       
  8.       
  9.     mMyclass  = [[MyClass alloc] init];  
  10.       
  11.       
  12.     //在可变数组中添加一个值  
  13.     [mMyclass addArray:@"雨松"];  
  14.     [mMyclass addArray:@"宝贝"];  
  15.     [mMyclass addArray:@"MOMO"];  
  16.     [mMyclass addArray:[[MyClass alloc] init]];  
  17.       
  18.     [mMyclass changeArray:1:@"哇咔咔"];  
  19.   
  20.       
  21.           
  22.       
  23.     //输出所有信息  
  24.     [mMyclass printArray];  
  25.   
  26.   
  27. }  

MyClass.m


[cpp]  view plain copy
  1. #import "MyClass.h"  
  2.   
  3. @implementation MyClass  
  4.   
  5.   
  6. //重写init方法好比java语言类的构造函数  
  7. //如果不重写的话init的时候父类会帮我们返回self指针  
  8. //重写的好处是在初始化self指针的同时可以初始化一些数据  
  9. - (id)init  
  10. {  
  11.     self = [super init];  
  12.     if (self) {  
  13.         //给成员变量fuzhi  
  14.         mID = 100;  
  15.         //初始化不可变数组  
  16.         mArray =[[NSArray alloc] initWithObjects:@"雨松MOMO",@"15810463139",@"xuanyusong@gmail.com",self,nil];  
  17.           
  18.         //初始化可变数组  
  19.         mListArray=[NSMutableArray array];  
  20.          
  21.     }  
  22.       
  23.     return self;  
  24. }  
  25.   
  26.   
  27.   
  28. //添加数组  
  29. - (void)addArray: (NSObject *) str  
  30. {  
  31.     [mListArray addObject:str];  
  32. }  
  33.   
  34. //删除数组  
  35. -(void) deleteArray:(NSString *)str  
  36. {  
  37.     [mListArray removeObject:str];  
  38.       
  39. }  
  40.   
  41. //修改数组中的元素   
  42. -(void)changeArray:(int)ID:(NSObject *) str  
  43. {  
  44.     [mListArray replaceObjectAtIndex:ID withObject:str];  
  45. }  
  46.   
  47. //向数组中插入一个元素   
  48. -(void)insertArray:(int)ID:(NSObject *) str  
  49. {  
  50.     [mListArray insertObject:str atIndex:ID];  
  51. }  
  52.   
  53. //遍历数组中的数据  
  54. //用log输出  
  55. - (void)printArray  
  56. {  
  57.     for (NSString *str in mArray) {  
  58.         NSLog(@"固定数组 %@", str);  
  59.     }  
  60.   
  61.       
  62.     for (NSString *str in mListArray) {  
  63.         NSLog(@"可变数组数组 %@", str);  
  64.     }  
  65.       
  66.       
  67.       
  68. }  
  69. @end  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值