黑马程序员——Foundation框架结构体、字符串、数组
2015-08-13 18:52
543 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
结构体
字符串
不可变数组
可变数组
结构体
// // main.m // 01-结构体 // // Created by CH on 14-4-11. // Copyright (c) 2014年 itcast. All rights reserved. // #import int main(int argc, const charchar * argv[]) { BOOL b = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));//判断两个点是否相同 //依此类推,CGRect CGSize都又类似的方法 //CGSizeEqualToSize(CGSize size1, CGSize size2); //CGRectEqualToRect(CGRect rect1, CGRect rect2); BOOL b2 = CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(230, 70));//reck中是否包含piont NSLog(@"%d",b2); return 0; } CGRect myRect1(CGFloat x,CGFloat y,CGFloat width,CGFloat height){ CGRect rect; rect.origin.x = x; rect.origin.y = y; rect.size.width =width; rect.size.height =height; return rect; } CGRect myRect2(CGPoint p,CGSize s){ CGRect rect; rect.origin.x = p.x; rect.origin.y = p.y; rect.size.width = s.width; rect.size.height = s.height; return rect; } void rect(){ //NSPoint==CGPoint==CGFloat==double CGPoint p1 = NSMakePoint(10, 10); NSPoint p2 = CGPointMake(10, 10);//开发中最常用 NSSize s1 = CGSizeMake(100, 50); NSSize s2 = NSMakeSize(100, 50); CGSize s3 = NSMakeSize(100, 30); CGRect r1 = CGRectMake(0, 0, 100, 40); CGRect r2 = {{0,0},{100,90}}; CGRect r3 = {p1,s2}; //CGPointZero == CGPointMake(0, 0);//表示原点 //CGSizeZero; //CGRectZero; CGRect r4 = {CGPointZero,CGSizeMake(100, 60)}; //将结构体转成字符串 NSString *str1 = NSStringFromPoint(p1); NSString *str2 = NSStringFromSize(s3); NSString *str3 = NSStringFromRect(r1); NSLog(@"\n%@\n,%@\n,%@",str1,str2,str3); } void range(){ struct Date { int year; int month; int day; }; struct Date d = {2011,3,12}; struct Date d2 = {.month = 10, .year = 2013, .day = 23}; // @"i love oc" love 的范围 NSRange r1 = {2,4};//不用 NSRange r2 = {.location = 2, .length = 4};//不用 NSRange r3 = NSMakeRange(2, 4);//掌握 NSString *str = @"i love oc"; //如果找不到,length=0,location=NSNotFound==-1 NSRange range = [str rangeOfString:@"love"];//查找某个字符串在str中的范围 NSLog(@"location = %ld,length = %ld",range.location,range.length); }
字符串
// // main.m // 02-NSString // // Created by CH on 14-4-11. // Copyright (c) 2014年 itcast. All rights reserved. // #import int main() { //可变字符串 NSMutableString *s1 = [NSMutableString stringWithFormat:@"age is 20"]; //拼接内容到s1到后面 [s1 appendString:@"11,22"];//s1的值会变 //获取is的范围 NSRange range = [s1 rangeOfString:@"is"]; [s1 deleteCharactersInRange:range]; //[s1 deleteCharactersInRange:NSMakeRange(4,2)];一般不用 //不可变字符串 NSString *s2 = [NSMutableString stringWithFormat:@"age is 200"]; NSString *s3 = [s2 stringByAppendingString:@"123"];//拼接完返回新的字符串,s2本身不会改变 NSLog(@"\ns1 = %@,\ns2 = %@,\ns3 = %@",s1,s2,s3); return 0; } void stringExport(){ //字符串的导出 [@"jack \njack" writeToFile:@"/Users/ch/Desktop/my.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; NSString *str = @"1231"; NSURL *url = [NSURL fileURLWithPath:@"/Users/ch/Desktop/my2.txt"]; [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil]; } void nSStringAll(){ //字符串的一些用法和NSURL NSString *s1 = @"jack"; NSString *s2 = [[NSString alloc] initWithString:@"jack"];//不用 NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d",10]; //C字符串 -->OC字符串 NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"]; //OC字符串-->C字符串 const charchar *cs = [s4 UTF8String];//const 可以不写 //NSUTF8StringEncoding 用到中文就可以用这种编码 NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"/Users/ch/Downloads/test2.txt" encoding:NSUTF8StringEncoding error:nil]; //URL:资源路径 //协议头://路径 //本地文件: file:// //网络ftp服务器:ftp:// //http://weibo.com/a.png NSURL *url = [[NSURL alloc] initWithString:@"http://www.feilv.com"]; NSURL *url1 = [NSURL fileURLWithPath:@"/Users/ch/Downloads/test2.txt"]; NSString *s6 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"s6:\n%@",s6); }
不可变数组
// // main.m // 03-NSArray // // Created by CH on 14-4-11. // Copyright (c) 2014年 itcast. All rights reserved. // #import int main() { Person *p = [[Person alloc] init]; NSArray *array = @[p,@"jack"]; //遍历方式一 for(int i = 0; i.count;i++){ NSLog(@"%@",array[i]); } //遍历方式二 for(id obj in array){ // NSUInteger i =[array indexOfObject:obj];//当前第几次 NSLOg(@"%@",obj); } //遍历方式三 [array enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOLBOOL *stop){ //idx表示索引位置,obj表示对象,stop是用来停止遍历的 NSLog(@"%ld - %@",idx,obj); if(idx==1){ *stop = YES;//停止了idx为1之后的对象 } }]; //遍历方法三原理: return 0; } void baseuse(){ //oc数组只能存放oc对象,不能存放非oc对象类型,比如int,struct,enum等 NSArray *array = [NSArray array];//这个array永远是空数组 //这是创建单个id的方式 NSArray *array2 = [NSArray arrayWithObject:@"jack"]; //这是创建多个id的创建方式 nil是数组元素结束的标记 NSArray *array3 = [NSArray arrayWithObjects:@"jack",@"rose", nil nil]; //创建多个值的数组 NSArray *array4 = [NSArray arrayWithObjects:@"jack",@"rose",@"Mike",@"Chenghao",nil]; //快速创建一个NSArray对象 NSArray *array5 = @[@"jack",@"rose",@"chegnhao"]; //[array2 count];和以下方式都可以 NSLog(@"%ld",array3.count); NSLog(@"%@",[array3 objectAtIndex:1]);//这种不用 NSLog(@"%@",array3[1]);//以后都适用这种,编译器遇到这行,就自动转成上面的代码 }
可变数组
#import int main(){ return 0; } void NSSet(){ NSSet *s = [NSSet set];//创建一个空的set,并且永远是空 NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",nil]; [s2 anyObject];//随机拿出一个元素 } void NSMutableSet(){ NSMutableSet *s = [NSMutableSet set]; [s addObject:@"hack"];//添加元素 [s removeObject:(id)];//删除元素 } void NSMutableArray(){ //@[] 只创建不可变数组 NSArray NSArray *array = @[@"jack",@"rose"]; NSMutableArray *array2 = [NSMutableArray arrayWithObjects:@"rose",@"jim",nil];//初始化时添加成员 NSMutableArray *array = [NSMutableArray array]; //添加元素 [array addObject:[[Person alloc] init]; [array addObject:@"Jack"];可以随便放,但不能放基本数据类型 //[array addObject:10];不行 //删除元素 //[array removeAllObjects];//删除所有元素 //删除指定对象 [array removeObject:@"Jack"]; [array removeObjectAtIndex:2]; return 0; }
相关文章推荐
- 黑马程序员--Java集合框架(2)
- 黑马程序员--java技术blog---第十篇:正则表达式
- 一个应届毕业生的求职回忆录(留给自己)
- 程序员日记我们需要有条理的生活
- 【面试的坑】行内元素是否可以设置宽高
- android 面试总结
- 【黑马程序员】内存管理基础
- 数据库 SQL面试题
- 黑马程序员—————Java基础----继承、多态、抽象、接口
- 一道关于Java中Integer缓冲区的面试题
- 黑马程序员--Java集合框架(1)
- 作为码农,我们为什么要写作
- 职场4个高效好习惯
- 面试宝典14.5.5
- 黑马程序员——java复习总结——字符串
- 黑马程序员——OC笔记之Foundation框架上
- 如何在面试中发现优秀程序员
- 黑马程序员--Java基础--多线程(一)
- 我们需要更多的程序员,而不是更好的工具
- 四个级别的 “自由” 程序员