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

原创 2015年11月19日 10:46:46

本文主要介绍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

Objective-C语法之动态类型常用方法总结

对象在运行时获取其类型的能力称为内省。内省可以有多种方法实现。        1、 判断类型         -(BOOL) isKindOfClass: classObj   判断对象是否是这个类或...
  • lqcjdx
  • lqcjdx
  • 2014年11月27日 15:36
  • 559

Objective-C代码块Block详解

block代码块是OC的一个特性,除了可执行的代码外,还可能包含变量的自动绑定(栈),或内存托管(堆)。所以一个block维护一个状态集(数据),可以在任何时候执行。block用来作为回调特别有用。 ...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年10月25日 19:41
  • 2448

Objective-C之代码块(block)的使用

在实际开发中 block 的使用很常见,于是就简单的整理了一下 block 的知识点.不足之处希望大家多纠正..... 一.block的概念及基本使用 概念:block对象是一个C语言的语...
  • l_511
  • l_511
  • 2015年07月16日 21:03
  • 370

Xcode中使用Objective-C基础语法学习教程(转)

Objective-C基础语法学习是本文要介绍的内容,主要是来学习语法的内容,如果想从事iphone开发的话,Objective-C 这门语言就不得不学会 我们都知道C语言是没有面向对象的 而Obje...
  • costa100
  • costa100
  • 2016年07月01日 11:26
  • 876

语法基础——Objective-C语法基础

iOS基础——Object-C基础 学习过Swift之后,好久没用已经生疏了,现在有项目来了,不得不停下手下的工作,开始学习OC (1)...
  • qq_30379689
  • qq_30379689
  • 2017年02月21日 19:37
  • 2914

IOS:Objective-C中奇特的方法声明语法理解

//下面的语法真的很奇特,按Apple的UITableView.h声明  - (UITableViewCell *)tableView:(UITableView *)tableView cellFo...
  • pj386960300
  • pj386960300
  • 2016年04月18日 13:51
  • 341

Swift 与Objective-c语法参照

Swift已经推出了一段时间了,今天来总结一下Swift与Objective-c(以下简称OC)的语法有哪些不同。 1.常量与变量: 在Swift中定义常量和变量很简单,常量使用let关键字,变量使用...
  • cg1991130
  • cg1991130
  • 2015年04月24日 15:11
  • 2340

IOS开发开篇之Objective-C语法基础

     首先声明:本系列技术博客只作学习之用,不存在其它目的。     作者从在吸收众多网友经验基础上,结合自己在IOS开发的经验将对IOS开发技术进行总结,以供后来者学习,更希望借此使自己对IOS...
  • pjk1129
  • pjk1129
  • 2011年05月31日 11:21
  • 15112

objective-c 新语法特性

http://www.infoq.com/cn/articles/wwdc2012-objective-c-new-feature 今年2012的WWDC...
  • Robincui2011
  • Robincui2011
  • 2013年02月21日 16:32
  • 1908

数据结构--Java实现几种常见排序

第一次在CSDN上写博客,今天晚上刚好复习了一下排序相关的东西,就写一写这个吧。(话说markdown还不熟悉。。)冒泡排序:复杂度o(n^2) 可以增加一个flag标记减少比较趟数 稳定public...
  • sinat_33516485
  • sinat_33516485
  • 2017年06月10日 20:43
  • 160
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Objective-C 语法之常用数据结构
举报原因:
原因补充:

(最多只允许输入30个字)