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
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
相关文章推荐
- Objective-C语法之常用数据的那些事儿(二)
- Objective-C语法之常用数据的那些事儿(二)
- Objective-C语法之常用数据的那些事儿(二)
- Objective-C语法之基本数据类型
- Objective-C 基础语法log打印那些事儿(一)
- Objective-C语法之基本数据类型
- Objective-C语法之NSMutableString字符串的那些事儿(四)
- ORACLE 常用的SQL语法和数据对象
- ORACLE 常用的SQL语法和数据对象
- SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等
- ORACLE 常用的SQL语法和数据对象
- Objective-C语法之static关键字的那些事儿(六)
- Objective-C语法之集合对象的那些事儿(九)
- Objective-C语法之基本数据类型
- ORACLE 常用的SQL语法和数据对象
- ORACLE 常用的SQL语法和数据对象
- Objective-C语法之基本数据类型
- Objective-C语法之NSString字符串的那些事儿(三)
- Objective-C学习笔记(二):OC之常用的OC语法上
- ORACLE中常用的SQL语法和数据对象