黑马程序员_Foundation框架
来源:互联网 发布:网络电影众筹 编辑:程序博客网 时间:2024/06/06 08:43
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
把结构体转换成字符串可以这么做:
NSLog(@"loc = &ld, length = %ld",range.location, range.length)
CGRect r1 = CGRectMake(0, 0, 100 ,193); // 第一二参数是CGPoint,后面的是size
NSArray // 这四个只能存放oc对象,不能放基本数据类型。比如@{10}×
NSSet (加上Mutable可变) // 无论是数组还是字典,快速创建的都只能是父类,子类不能快速创建
NSDictionary // 字典用 @{}
NSNumber / NSValue // @后面跟上一个数字,自动变成[NSNumber numberWithInt:4]对象
NSDate
是可以(写入)读取文件:(可以对中文进行编码转换)尽量用URL这个方式读取文件即下面的file换成URL
NSArray * array = [content componentsSeparatedByString:@"\n"];
return array.count; // 这里返回一个int的就可以了
1 [array objectAtIndex:1]; // 读取第二个对象
2 array[1]; // 这是编译器的特性,会自动转换成上面的方法,以后用这个
NSSet
创建:NSDictionary *dict = @{索引@"" :内容@"";索引 :内容};
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------详细请查看:www.itheima.com
Foundation框架:
Foundation框架很常用,开发中几乎都需要用到,所以对这个框架稍微总结一下。对于常用的结构体和类分开说一下会比较好理解的:
foundation常用结构体有这些:
NSRange NSPoint(CGPoint坐标) NSSize NSRect
NSRange r = NSMakeRage(location, length) // 后面的是函数
把结构体转换成字符串可以这么做:
CGPoint p = CGPointMake(10, 54);
NSString *str = NSStringFormPoint(p);
NSString *str = NSStringFormPoint(p);
NSString *str = @"ii love oc"; // 查找某个字符串的范围
NSRange range = [str stringOfString:@"ve o"];
NSLog(@"loc = &ld, length = %ld",range.location, range.length)
注意:函数名:CGPointMake(可以跨平台,尽量使用) 或者 NSMakePoint
如果找不到字符串的话,length = 0, location = NSNotfound = -1;
CGRect r1 = CGRectMake(0, 0, 100 ,193); // 第一二参数是CGPoint,后面的是size
参数亦可:CGRect r1 = CGRectMake{{0, 0}, {100 ,193}};
CGRect r1 = CGRectMake(p1, s1); // 里面的参数代表结构体
坐标是0的时候可以:CGPointZero
使用CG而不是NS的时候,要添加框架进去,不是#import,而是在xcode里面设置添加
常用的foundation类有这些:
NSString // 数组用 @[]
NSArray // 这四个只能存放oc对象,不能放基本数据类型。比如@{10}×
NSSet (加上Mutable可变) // 无论是数组还是字典,快速创建的都只能是父类,子类不能快速创建
NSDictionary // 字典用 @{}
NSNumber / NSValue // @后面跟上一个数字,自动变成[NSNumber numberWithInt:4]对象
NSDate
这些都是固定的不可变的,如果变成NSMutableString(加上Mutable)则是可变,其他都是一样
NSString:
是可以(写入)读取文件:(可以对中文进行编码转换)尽量用URL这个方式读取文件即下面的file换成URL
NSString *cs = [NSString alloc] initWithContentsOfFile:@"文件的绝对路径" encoding:
NSUTF8StringEncoding error: nil];
NSUTF8StringEncoding 用到中文就可以这样编码
NSMutableString可变字符串:
// 创建对象后,可以对这个对象增加和删除字符:
[s appendString:@"内容"];删除换成delete
[s appendString:@"内容"];删除换成delete
注意:创建对象的时候可以不用写alloc init,可以直接调用类方法,因为是返回一个对象的:
[[NSString alloc] initWithFormat:@""];可换成[NSString stringWithFormat:@""];一般类方法名都是和类名相同的
查看一下字符串里面的每一个元素(面向对象的思想):
[content characterAtIndex:(NSUInteger(整数))];
[content characterAtIndex:(NSUInteger(整数))];
数有多少行:更好用的是把代码分割成很多块,标记是\n,返回的是一个数组对象
NSArray * array = [content componentsSeparatedByString:@"\n"];
return array.count; // 这里返回一个int的就可以了
NSArray
OC数组只能存放OC对象,不能存放非OC对象,不能存放空值
创建oc数组:NSArray *a = [NSArray arrayWithObject:@"sdljfef"]; // 加上s就是可以传很多对象
快速创建数组:NSArray *a = @[]; // @就是创建NSArray对象的快捷方式,中括号里面写对象就好
这个快速创建数组的方法“@[]”不适用于NSMutableArray这个数组
读取的时候:两种方法
1 [array objectAtIndex:1]; // 读取第二个对象
2 array[1]; // 这是编译器的特性,会自动转换成上面的方法,以后用这个
遍历OC对象的数组:
1 for(int i = 0; i < array.count; i++){NSLog(@"%@", array[i]);} 2(快速遍历)for(id obj in array){NSUInteger i = [array indexOfObject:obj];NSLog(@"%ld - %@",i, obj);}3[array enumerateObjectUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){NSLog(@"%ld - %@",idx, obj)}];第三种方法的本质是:void [^myBlock](id, NSUInteger, BOOL*) = ^(id obj, NSUInteger idx, BOOL *stop){NSLog(@"%ld - %@",idx, obj);if(idx = 0){*stop = YES;}}for(int i = 0; i < array.count; i++){BOOL isStop = NO;id obj = array[i];myBlock(obj, i, &isStop); // 用指针才会改变stop的值,否则是值传递if(isStop){break;}}
NSFileManager这个类是只能创建一个对象,调用多少次都是只有一个对象,方式:
// 获取文件管理者
NSFileManager * mgr = [NSFileManager defaultManager];
NSFileManager * mgr = [NSFileManager defaultManager];
判断一个路径是文件还是文件夹:
BOOL dir = NO; // 默认是NO
[mgr fileExistsAuPath:路径 isDirectory:BOOL*];
[mgr fileExistsAuPath:路径 isDirectory:BOOL*];
NSSet
这个是没有顺序的,用法和NSArray相似
创建一个NSSet:NSSet *s = [NSSet setWithObject:@"字符串"];
调用的时候:NSString *str = [s anyOject]; // 只能随机拿数组的元素
NSDictionary:
创建:NSDictionary *dict = @{索引@"" :内容@"";索引 :内容};
NSNumber / NSValue
NSNumber是NSValue的子类,前者只能让数字和字符和BOOL包装成对象,本质是依赖于父类的方法;后者可以把结构体等等基本数据类型包装成对象。
NSDate
// 这个是DATE转成字符串的形式// 显示当前(执行这个代码)的时间NSDate *date = [NSDate date];// 日期格式化类NSDateFormatter *formatter = [[NSDateFormatter alloc] init];// y 年 M 月 d 日// m 分 s 秒 H (24)时 h (12)时formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";NSString *str = [formatter stringFromDate:date];
Foundation框架还有很多内容需要我们主动去学习,里面提供很多丰富的方法需要开发者去感受,上面列举的只是常用的一部分,还有很多很多需要我们自己去挖掘。加油,我相信我们是可以的。
0 0
- 黑马程序员_Foundation框架
- 黑马程序员_Foundation框架
- 黑马程序员_Foundation框架
- 黑马程序员_Foundation框架小结
- 黑马程序员_Foundation框架02_NSString
- 黑马程序员_Foundation框架的学习
- 黑马程序员_Foundation框架03_集合类
- 黑马程序员_Foundation框架01_结构体
- 黑马程序员_Foundation框架04_NSNumber、NSValue、NSDate
- 黑马程序员_Foundation框架基础知识(一)常用结构体
- 黑马程序员_Foundation框架基础知识(二)集合类
- 黑马程序员_Foundation框架基础知识(三)-常用类
- 黑马程序员_Foundation学习之结构体
- 黑马程序员--IOS_学习笔记_Foundation/CoreGranphics
- 黑马程序员_object c学习日记⑥_Foundation框架:结构体、集合类、NSString、日期类
- 黑马程序员_Foundation学习之NSString、NSArray及相关
- 黑马程序员_Foundation学习之NSSet、NSDictionary、NSNumber、NSValue、NSDate
- 黑马程序员:集合框架
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
- AfxEnableControlContainer()
- 数据库隔离级别
- 我的二级挂了
- iOS table简单实现增加移动和删除功能与自定义cell的实现
- 黑马程序员_Foundation框架
- 【python】理解迭代器及yield
- Mysql Binlog三种格式介绍及分析
- 同是大一的学生,这让我情何以堪!
- Shuffle执行过程分析
- TortoiseGit + msysgit 记住帐号密码方法及使用密匙的方法
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- 今天又发现个很炫的UI框架 PagerSlidingTabStrip
- 从JDK看设计模式之行为模式:迭代器