黑马程序员——OC中Foundation框架
来源:互联网 发布:淘宝卖家怎么拉黑买家 编辑:程序博客网 时间:2024/05/16 23:58
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流!—-
Foundation框架
一、Foundation框架基本认识
<1>.正如其名,Foundation框架是其他所有IOS框架的基础
<2>.Foundation框架包含了很多开发中常用的数据类型
a.结构体b.枚举c.类
<3>.要想使用Foundation中的数据类型,包含它的主文件即可
#import <Foundation/Foundation.h>
<4>.Foundation框架中4种常用的结构体
NSRange,NSPoint,NSSize,NSRect
二、结构体
1.定义:综合表示出一个物体的坐标,地址,或宽、高
2.四种常用的结构体
<1>.NSRange (location, length) ->表示地址及长度
<2>.NSPoint\CGpoint (x, y ) ->表示坐标(x, y)
<3>.NSSize\CGSize (width, height) ->表示宽、高
<4>.NSRect\CGRect (CGPoint, CGSize) ->表示坐标x,y以及宽、高
3.四种结构体的基本用法
<1>.NSRange
//字符串@"i love you" ->用NSRange来描述love的位置//一般是不用这种方法NSRange r1 = {.location = 1, .length = 4};//NSMakeRange是系统自带的一个函数,经常用下面这种方法来表达NSRange r2 = NSMakeRange(2, 4) //表示地址为2,长度为4
用NSString的对象方法rangeOfString,查找某个字符串在str中的范围
NSString *str = @"i love you";//用NSString的对象方法rangOfString,查找"ios"字符串在str中的范围//如果找不到那个字符串,就返回length=0,location=NSNotFound=-1NSRange range = [str rangeOfString:@"ios"];
<2>.NSPoint/CGPoint
struct CGPoint { CGFloat x; CGFloat y;};typedef struct CGPoint CGPoint;CGPoint p1 = NSMakePoint (10, 20);或者另一种方式CGPoint p2 = CGPointMake (10, 20);
<3>.NSSize/CGSize
typedef CGSize NSSize;struct CGSize { CGFloat width; CGFloat height;};typedef struct CGSize CGsize;NSSize s1 = CGSizeMake(100, 50); //第1种表示方式NSSize s2 = NSMakeSize(100, 50); //第2种表示方式CGSize s3 = NSMakeSize(100, 50); //第3种表示方式
<4>.NSRect/CGRect
typedef CGRect NSRect;struct CGRect { CGPoint origin; CGSize size;};typedef struct CGRect CGRect;//表示坐标x位0,y为0,宽为100,高为50的结构体CGRect r1 = CGRectMake(0,0,100,50); //第1种表示方式CGRect r2 = NSMakeRect(0,0,100,50); //第2种表示方式
注意:以上四种结构体都是定义在Foundation/NSGeometry.h中的
三、字符串NSString和NSMutableString
1.NSString(不可变字符串)
示例
2.URL(资源路径)
URL的书写格式
协议头://路径
协议头包括:http(网络资源)、ftp(FTP服务器资源)、file(本地文件)等
3.创建字符串的类方法
一般都会有一个与对象initWith方法配对的类方法
示例
4.字符串的导出
5.NSMutableString(可变字符串)
<1>.可变字符串的拼接
示例
<2>.不可变字符串拼接后新建字符串
示例
<3>.删除字符串中的某个字符串
示例
四、集合类 (俗称OC数组)
1.集合类包含
<1>.不可变数组:NSArray、NSSet、NSDictionary、NSDate、NSObject
<2>.可变数组:NSMutableArray,NSMutableSet,NSMutableDictionary
注意:
NSMutableArray,NSMutableSet,NSMutableDictionary分别是NSArray、NSSet、NSDictionary的子类
2.OC数组与C语言数组的区别
<1>.C语言数组:只能存放单一类型数据
<2>.OC数组:可以存放各种OC对象
<3>.OC数组不能存放nil值,nil代表OC数组的结束。
<4>.OC数组只能存放OC对象、不能存放非OC对象类型,比如int、struct、enum等
NSArry *array = [NSArry array];//这个array永远是空数组
3.集合类 NSArray和NSMutableArray
4.集合类 NSSet和NSMutableSet
<1>.NSSet 无序不可变数组
<2>.NSMutableSet 无序可变数组
5.集合类 NSDictionary和NSMutableDictionary(字典)
字典基本认识
一个key(键)对应一个value(值),里面存储的东西都是键值对 key(id类型) ->value(id类型)
一般用法
索引 ->文字内容
<1>.不可变字典 NSDictionary
<2>.可变字典 NSMutableDictionary
<3>.字典的遍历
6.NSSet和NSArray的对比
共同点
<1>.都是集合,都能存储多个OC对象
<2>.只能存放OC对象,不能存放非OC对象(int,char,float,struct,enum等)
<3>.本身都不可变,但有一个可变的子类
不同点
NSArray有序,NSSet无序
五、集合类总结
1.NSArray\NSMutableArray
<1>.有序
<2>.快速创建(不可变):@[obj1, obj2, obj3]
<3>.快速访问元素:数组名[i]
2.NSSet\NSMutableSet
无序
3.NSDictionary\NSMutableDictionary
<1>.无序
<2>.快速创建(不可变):@{key1 : value1, key2 : value2}
<3>.快速访问元素:字典名[key]
六、NSValue/NSNumber
1.NSValue/NSNumber基本认识
OC数组对象只能包装OC对象,如果非要包装其他类型数据可以根据NSValue或NSNumber来转换,NSNumber只能转换基本数据类型,而NSValue可以转换任何类型,NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
2.NSValue/NSNumber基本用法
<1>.NSNumber的基本使用
<2>.NSValue的基本使用
NSValue一般用于包装结构体:CGPoint、CGSize、CGRect
七、NSDate(时间)
1.基本使用
2.时间格式化
当我们想把NSDate对象中的时间输出到手机屏幕上时,我们就需要将NSDate对象转成字符串。
但如何告诉程序我们想要用什么格式输出呢?2015\04\07 还是 2015-04-07 11:10:36? 用24时制还是12时制?
这就用到了时间格式类:NSDateFormatter
<1>.将NSDate对象转成字符串
<2>.将字符串转成NSDate对象
- 黑马程序员——OC中Foundation框架
- 黑马程序员——OC中Foundation框架
- 【黑马程序员】OC-Foundation框架—NSMutableString
- 黑马程序员——OC基础05—Foundation框架
- 黑马程序员—OC语言基础—Foundation框架小结
- 黑马程序员——OC笔记之Foundation框架上
- 黑马程序员——OC笔记之Foundation框架下
- 黑马程序员——oc之Foundation框架
- 黑马程序员——OC语言加强---Foundation框架介绍
- 【黑马程序员】OC-Foundation框架—NSString和NSRange
- 【黑马程序员】OC-Foundation框架—NSArray和NSMutableArray
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- 黑马程序员 OC框架: Foundation
- 黑马程序员------OC Foundation框架
- 黑马程序员————OC中Foundation框架知识总结
- ——黑马程序员——OC中Foundation框架NSString用法总结
- ——黑马程序员——OC中Foundation框架NSSArray用法总结
- ——黑马程序员——OC中Foundation框架NSDictionary的使用
- 学习android过程中(1)
- 证书吊销列表(CRL)介绍
- mongodb 学习
- Spring MVC 事务配置及使用
- 4.矩阵行元素交换
- 黑马程序员——OC中Foundation框架
- 第八周 项目一 实现复数类中的运算符重载(2)
- java集合工具类---Collections/Arrays
- iOS开发之UITableView的两种类型(plain和group)
- 链式运动实例 运动框架应用 微博
- IOS UINavigationBar
- Lua笔记:Sprite及ImageView类型替换新的图片资源
- MD5の初了解
- Axure学习心得二——中继器