哎,好多日都没有更新博客了,一方面因为自己本身在学习的过程中也做了个人的笔记。另外一个最重要的原因就是公司那边实在是太多东西要忙了。有时候发现都有点难以兼顾了。但是,告诉自己还要坚持。这一个月以来,发现自己对硬件越来越不感兴趣了。很讨厌整天在调试硬件,即使自己一直都是在写软件。太多实际的硬件问题解决不了,自己很难写程序。。。整天在调试几句的代码,非常的没有味道,非常的枯燥呀。
好了,言归正传。到今晚为止,OC的语法的学习都进入倒数时间了。Xcode上面好多的API还是不是很熟练,需要多多的联系,比较重要的当然是字符串处理吧。记得,大学的时候,自己一直都几乎都在搞字符串处理。通过,这些过程,让自己对语言的本身更加深入地理解。一大堆的结构体,链表。。。很可惜的是,没有什么好的设计模式,这个要在后面学习一下,可以搞一些框架的东西处理。好了,哈哈,下面就是今晚的学习成果。
今晚,学习了数组(动态与静态),字典,NSNuber,NSValue。。。立马上代码,‘直接看代码注释更加好了,讲解也是没有什么好讲解的。
//
// main.m
// array
//
// Created by chuck on 14-9-9.
// Copyright (c) 2014年 apple. All rights reserved.
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
typedef struct{
int age;
}Student; //创建一个简单的结构体;使用typedef
Student std1={60};
int value=25;
// insert code here...
NSLog(@"Hello, World!");
NSArray *array1=@[@10,@(value),@"tom"];//使用最简便的方法来初始化一个静态数组,该方法的使用非常接近C语言。
//但是从上面可以看到,因为NSArray数组不能初始化基本数据类型,只可以成员是OC对象,那么当前使用 “@10”就可以,同样地,使用“@(变量名称)”;
NSLog(@"%@",array1[0]);
int num1;
[array1[0] getValue:&num1]; //使用一般对象的getvalue方法,但是相比下面的,下面的会更加方便吧
NSLog(@"num1=%d",num1);
int num2;
num2 = [array1[1] intValue];//使用更加快捷的方法向数组取值
NSLog(@"num2=%d",num2);
//下面展示的时如何快速初始化以及简单使用一个字典
NSDictionary *dict = @{@"name": @"chuck",@"address":@"Guanzhou"};//与数组一样init一个字典
NSLog(@"%@",dict[@"name"]);//查字典,OK
//下面展示 NSVlaue,它的用处在于是平时将自定义的结构体如何使用NSValue来被放进到一个数组里面。
NSValue *val1 = [NSValue valueWithBytes:&std1 objCType:@encode(Student)];
//使用动态数组来操作数据
NSMutableArray *marry1=[NSMutableArray arrayWithObjects: nil];//init一个动态数组,这里其实跟C语言的链表很相似的
[marry1 addObject:val1 ];
Student std2;
[marry1[0] getValue:&std2];//直接使用强制类型转换,使用数据,符合C语言的使用
//使用静态数组来操作成员数据
/*
NSArray *array3=@[val1];
NSValue *val2=array3[0];
[(NSValue *)array3[0] getValue:&std2];
*/
NSLog(@"%d",std2.age);
}
return 0;
}
2014-09-09 23:46:30.159 array[1458:303] Hello, World!
2014-09-09 23:46:30.164 array[1458:303] 10
2014-09-09 23:46:30.165 array[1458:303] num1=10
2014-09-09 23:46:30.165 array[1458:303] num2=25
2014-09-09 23:46:30.166 array[1458:303] chuck
2014-09-09 23:46:30.167 array[1458:303] 60
Program ended with exit code: -1
今晚就到此为止了,早点训教,好累。明天还要继续上班呢~加油!!