Objective-C 常用数据(二)

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

HelloWorldViewController.m类中

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

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

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

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

01 - (void)viewDidLoad
02 {
03     [super viewDidLoad];
04     //程序启动界面显示之前会调用这个方法
05     //所以将语法代码添加在这里
06  
07     //整型
08     int i = 100;
09     //浮点型
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     NSLog(@"i = %d size = %lu byte ",i, sizeof(i));
21     //浮点型
22     NSLog(@"f = %f size = %lu byte",f,sizeof(f));
23     //双浮点型
24     NSLog(@"d = %e size = %lu byte",d,sizeof(d));
25     //短整型
26     NSLog(@"si = %hi size = %lu byte",si,sizeof(si));
27     //长整型
28     NSLog(@"ll = %lli size = %lu byte",ll,sizeof(si));
29 }

Log打印结果

2.字符串 NSString*  与  char* 

01 - (void)viewDidLoad
02 {
03     [super viewDidLoad];
04     //程序启动界面显示之前会调用这个方法
05     //所以将语法代码添加在这里
06     NSString * str = @"MOMO";
07     char *c = "15810463139";
08  
09     //将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 }

Log打印结果

字符串格式化

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

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

01 - (void)viewDidLoad
02 {
03     [super viewDidLoad];
04     //程序启动界面显示之前会调用这个方法
05     //所以将语法代码添加在这里
06     NSString * str = [NSString stringWithFormat:@"姓名:%@ 年龄:%d 邮箱:%@" ,@"雨松momo",25,@"xuanyusong@gmail.com"];
07  
08     NSLog(@"str = %@",str);
09  
10 }

 Log 输出结果

3.布尔值

宏定义 真为YES 假为NO 

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

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

01 - (void)viewDidLoad
02 {
03     [super viewDidLoad];
04     //程序启动界面显示之前会调用这个方法
05     //所以将语法代码添加在这里
06  
07     bool a = false;
08     bool b = true;
09  
10     if(a == b)
11     {
12         NSLog(@"a与b相等");
13     }
14  
15     if(a != b)
16     {
17         NSLog(@"a与b不等");
18     }
19  
20     bool c = YES;
21     bool d = YES;
22  
23     if(c == d)
24     {
25         NSLog(@"c与d相等");
26     }
27  
28     if(c != d)
29     {
30         NSLog(@"c与d不等");
31     }
32  
33 }

 Log打印结果

4 .数组与字典

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

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

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

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

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

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

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

1 for (NSString * str in mArray) {
2      NSLog(@"固定数组 %@", str);
3 }

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

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

1 //初始化可变数组
2 mListArray=[NSMutableArray array];

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

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

 removeObject方法用于删除元素

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

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

第一个参数为 索引的id

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

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

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

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

第二个参数  插入的索引

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

 创建MyClass对象

01 - (void)viewDidLoad
02 {
03     [super viewDidLoad];
04  
05     mMyclass  = [[MyClass alloc] init];
06  
07     //在可变数组中添加一个值
08     [mMyclass addArray:@"雨松"];
09     [mMyclass addArray:@"宝贝"];
10     [mMyclass addArray:@"MOMO"];
11     [mMyclass addArray:[[MyClass alloc] init]];
12  
13     [mMyclass changeArray:1:@"哇咔咔"];
14  
15     //输出所有信息
16     [mMyclass printArray];
17  
18 }

MyClass.m

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值