您的位置:首页 > 移动开发 > Objective-C

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

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

HelloWorldViewController.m类中

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

view
plain

- (void)viewDidLoad

{

[super viewDidLoad];

//程序启动界面显示之前会调用这个方法

//所以将语法代码添加在这里

}

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

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

view
plain

- (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*

view
plain

- (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*类型

view
plain

- (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

view
plain

- (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这个数组中

view
plain

//初始化不可变数组

mArray =[[NSArray alloc] initWithObjects:@"雨松MOMO",@"15810463139",@"xuanyusong@gmail.com",self,nil];

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

view
plain

int count = [mArray count];

for (int i = 0; i < count; i++) {

NSLog(@"固定数组 %@", [mArray objectAtIndex:i]);

}

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

view
plain

for (NSString * str in mArray) {

NSLog(@"固定数组 %@", str);

}

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



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

view
plain

//初始化可变数组

mListArray=[NSMutableArray array];

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

view
plain

//添加数组

- (void)addArray: (NSObject *) str

{

[mListArray addObject:str];

}



removeObject方法用于删除元素

view
plain

//删除数组

-(void) deleteArray:(NSString *)str

{

[mListArray removeObject:str];



}

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

第一个参数为 索引的id

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

view
plain

//修改数组中的元素

-(void)changeArray:(int)ID:(NSObject *) str

{

[mListArray replaceObjectAtIndex:ID withObject:str];

}

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

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

第二个参数 插入的索引

view
plain

//向数组中插入一个元素

-(void)insertArray:(int)ID:(NSObject *) str

{

[mListArray insertObject:str atIndex:ID];

}

创建MyClass对象

view
plain

- (void)viewDidLoad

{

[super viewDidLoad];











mMyclass = [[MyClass alloc] init];





//在可变数组中添加一个值

[mMyclass addArray:@"雨松"];

[mMyclass addArray:@"宝贝"];

[mMyclass addArray:@"MOMO"];

[mMyclass addArray:[[MyClass alloc] init]];



[mMyclass changeArray:1:@"哇咔咔"];









//输出所有信息

[mMyclass printArray];





}

MyClass.m

view
plain

#import "MyClass.h"



@implementation MyClass





//重写init方法好比java语言类的构造函数

//如果不重写的话init的时候父类会帮我们返回self指针

//重写的好处是在初始化self指针的同时可以初始化一些数据

- (id)init

{

self = [super init];

if (self) {

//给成员变量fuzhi

mID = 100;

//初始化不可变数组

mArray =[[NSArray alloc] initWithObjects:@"雨松MOMO",@"15810463139",@"xuanyusong@gmail.com",self,nil];



//初始化可变数组

mListArray=[NSMutableArray array];



}



return self;

}







//添加数组

- (void)addArray: (NSObject *) str

{

[mListArray addObject:str];

}



//删除数组

-(void) deleteArray:(NSString *)str

{

[mListArray removeObject:str];



}



//修改数组中的元素

-(void)changeArray:(int)ID:(NSObject *) str

{

[mListArray replaceObjectAtIndex:ID withObject:str];

}



//向数组中插入一个元素

-(void)insertArray:(int)ID:(NSObject *) str

{

[mListArray insertObject:str atIndex:ID];

}



//遍历数组中的数据

//用log输出

- (void)printArray

{

for (NSString *str in mArray) {

NSLog(@"固定数组 %@", str);

}





for (NSString *str in mListArray) {

NSLog(@"可变数组数组 %@", str);

}







}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: