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

本文主要介绍Objective-C语言中的一些常用数据结构 

HelloWorldViewController.m类中,我们的测试语法代码添加在viewDidLoad方法中

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

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

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

  
- ( void )viewDidLoad {
     [super viewDidLoad];
     //程序启动界面显示之前会调用这个方法
     //所以将语法代码添加在这里
     
     //整型
     int i = 100;
     //浮点型
     float f = 1.1;
     //双浮点型
     double d = 2.2;
     //短整型
     short int si = 200;
     //长整型
     long long int ll = 123324123234123L;
     
     //输出数据与内存中所占字节数
     //整型
     NSLog(@ "i = %d size = %lu byte " ,i, sizeof (i));
     //浮点型
     NSLog(@ "f = %f size = %lu byte" ,f, sizeof (f));
     //双浮点型
     NSLog(@ "d = %e size = %lu byte" ,d, sizeof (d));
     //短整型
     NSLog(@ "si = %hi size = %lu byte" ,si, sizeof (si));
     //长整型
     NSLog(@ "ll = %lli size = %lu byte" ,ll, sizeof (si));
}

Log打印结果

2.字符串 NSString*  与  char*

  
- ( void )viewDidLoad {
     [super viewDidLoad];
     //程序启动界面显示之前会调用这个方法
     //所以将语法代码添加在这里
     NSString * str = @ "MOMO" ;
     char *c = "15810463139" ;
     
     //将NSString 转换为char *
     const char *change = [str UTF8String];
     
     //输出log
     NSLog(@ "str = %@ size = %lu" , str, sizeof (str));
     NSLog(@ "c = %s size = %lu" , c, sizeof (c));
     NSLog(@ "change = %s size = %lu" , change, sizeof (change));
}

Log打印结果

字符串格式化

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

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

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

Log 输出结果 

3.布尔值

宏定义 真为YES 假为NO 

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

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

  
- ( void )viewDidLoad {
     [super viewDidLoad];
     //程序启动界面显示之前会调用这个方法
     //所以将语法代码添加在这里
     bool a = false ;
     bool b = true ;
     if (a == b) {
         NSLog(@ "a与b相等" );
     }
     if (a != b) {
         NSLog(@ "a与b不等" );
     }
     bool c = YES;
     bool d = YES;
     if (c == d) {
         NSLog(@ "c与d相等" );
     }
     if (c != d) {
         NSLog(@ "c与d不等" );
     }
}

Log打印结果

4 .数组与字典

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

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

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

  
//初始化不可变数组
mArray =[[NSArray alloc] initWithObjects:@ "雨松MOMO" ,@ "15810463139" ,@ "xuanyusong@gmail.com" ,self,nil];
遍历方法一 : 很普遍java 语言 c 语言都这样来遍历
  
int count = [mArray count];
for ( int i = 0; i < count; i++) {
     NSLog(@ "固定数组 %@" , [mArray objectAtIndex:i]);
}
遍历方法二: objective-c 2.0 引入的快速枚举法 不仅速度快 并且安全性高,推荐使用这种方式来遍历.
  
for (NSString * str in mArray) { 
      NSLog(@ "固定数组 %@" , str); 
}

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

文章出处: http://www.oschina.net/question/54100_28818

, NO 是 0 , BOOL 本身就是个 char 。 4、IBOutlet、IBAction是啥玩意,总能看到。 这两个东西其实在语法中没有太大的作用。如果你希望在Interface Builder中能看 ,NO是0,BOOL本身就是个char。 4、IBOutlet、IBAction是啥玩意,总能看到。 这两个东西其实在语法中没有太大的作用。如果你希望在Interface Builder中能看到这个控件对象,那么在定义的时候前面加上IBOutlet,在IB里就能看到这个对象的outlet,如果你希望在Interface Builder里控制某个对象执行某些动作,就在方法前面加上(IBAction)。 而这两个东西实际上和void是一样的。 5、nil。 Objective-C里的NULL(空)就这么写,表示空指针。 6、为什么是@”字符串”而不是”字符串” 前面加上@符号,编译器在编译的时候会在程序中给你留出位置,这样才能保证这个字符串不会丢失。反正记住,如果你要想把某些字符串写死在程序里,就要用@”字符串”,如果忘了用@,程序应该会出错。 superzhou大侠指正: 6、为什么是@”字符串”而不是”字符串” ”字符串”是C的字符串,@”"是把C的字符串转成NSString的一个简写. 在需要NSString的地方才需要这个转化,例如NSLog里面. 在需要C string的地方,还是用”字符串”的. 另外,@”"这个转换是不支持中文的.例如NSLog(@”字符串”); 是一定输出不了中文的. 四、Objective-C 2.0 Objective-C 2.0是Leopard新增加的一门语言,其实和原来的Objective-C是一样的。主要是增加了属性。详细的内容这里不写了,可以参阅Allen Dang的这篇文章,写的很明白。 http://blog.codingmylife.com/?p=81 五、总结 现在来总结一下怎么看Objective-C的代码和怎么开始学Objective-C吧。 1、记住Objective-C就是C,不是火星语,这个很关键。 2、记住你自己看不懂不表示脑子迟钝,大部分人第一次看Objective-C的代码可能比你还要迟钝。 3、把CocoaChina.com加入收藏夹,看不明白代码就来再看一遍这篇开宗明义的好文。 4、文档很关键,当你看不懂某些东西说的是什么的时候,先查Cocoachina,再看英文文档里面的API说明,尤其这个类是以NS开头的时候。再不行就去google搜,直接把你要查的方法贴进google,通常能找到不少人也在问同样的问题,自然也有热心人活雷锋帮助回答。 5、可以看hello world例子,但是不能总看,看多了真的会晕。另外,千万要放弃苹果官方的Currency Converter货币转换的例子,那个例子是毒药,刚学的时候越看越蒙。 6、学习一门语言最好的方法是先用,和学外语一样,当你会说的时候自然会读。给自己设立一个简单的目标,比如做一个简单的程序,然后一点点解决问题。这样学习起来比只看例子快得多。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值