黑马程序员——OC中Foundation框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Foundation框架:
Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协议一起)定义了基本的对象属性和行为。Foundation框架的剩余部分由几组相互关联的类和一些独立的类组成。有一些代表基本数据类型的类,如字符串、字节数组、用于存储其它对象的集合类,一些代表系统信息的类
简单的说,Foundation框架就是许多个常用类的集合程序的开发过程,Foundation框架将经常使用平时创建OC类的时候,就要引用Foundation框架的Foundation.h文件#import <Foundation/Foundation.h>
Foundation框架中4种常用的结构体NSRange,NSPoint,NSSize,NSRect

结构体:

1.NSRange

1)NSRange原来就是由两个unsigned long类型组成的结构体:

2)NSRange的两个成员

NSRange有两个Unsigned long类型的成员:location、length

可以用来描述几个字母在字符串中所处的位置和长度。

也可以描述数组中几个数据所处的位置和范围。

3)用NSString的对象方法rangeOfString,查找某个字符串在str中的范围

NSPoint(CGPoint)表示坐标

为什么使用CGPoint?

因为CGPoint和NSPoint的功能是一样的,但是CGPoint是跨平台的,所以一般使用CGPoint

NSPoint定义在Foundation/NSGeometry.h中,其定义格式是这样的:

NSPoint表示一个平面上的点,分别用x和y表示横坐标和竖坐标。这点在我们以后操作屏幕上的点定位都是有用的,NSPoint跟NSRange一样,同样可以使用函数NSMakePoint(CGFloat x, CGFloat y)来产生一个NSPoint,使用函数NSStringFromPoint(NSPoint point)来将NSPoint格式化为一个NSString字符串。

3、NSSize(CGSize)表示UI元素的尺寸,宽度和高度

NSSize结构体同样是定义在Foundation/NSGeometry.h中的,其定义结构如下

4、NSRect(CGRect)

NSRect结构体定义在Foundation/NSGeometry.h中,其定义为:


这个结构体用来存储宽度和高度,origin表示矩形左上角的坐标,size表示矩形的高度和宽度。同样的,我们可以使用NSMakeRect()和CGRectMake()来创建一个NSRect或者CGRect

NSString和NSMutableString

1.NSString(不可变字符串)

字符串创建的几种方式:

2.URL(资源路径)

URL的书写格式

协议头://路径

协议头包括:http(网络资源)、ftp(FTP服务器资源)、file(本地文件)等


3.创建字符串的类方法

一般都会有一个与对象initWith方法配对的类方法。开发中,我们常用类方法,因为代码短,省时间。

4.字符串的导出


6.NSMutableString(可变字符串)

1)可变字符串的拼接:

这里用到了字符串对象方法 appendString:

2)不可变字符串拼接后新建字符串

3)删除字符串中的某个字符串

三、集合类 NSArray和NSMutableArray(OC数组)

1.可变数组、不可变数组

NSArray:不可变数组

NSMutableArray:可变数组

NSMutableArray是NSArray的子类

2.OC数组与C语言数组的区别

C语言数组:只能存放单一类型数据

OC数组:可以存放各种OC对象  

* OC数组不能存放nil值,nil代表OC数组的结束。

* OC数组只能存放OC对象、不能存放非OC对象类型,比如intstructenum

可变数组的基本使用:

集合类 NSSet和NSMutableSet (无序数组)

1.NSSet 无序不可变数组

NSMutableSet 无序可变数组

集合类  NSDictionary和NSMutableDictionary (字典)

     字典:一个key(键)对应一个value(值),里面存储的东西都是键值对。 

     key(id类型) ----> value(id类型)

     一般用法:索引 ---->文字内容

不可变字典 NSDictionary

可变字典 NSMutableDictionary

字典的遍历

集合类总结

 集合

1.NSArray\NSMutableArray

 *有序

 *快速创建(不可变):@[obj1, obj2, obj3]

 *快速访问元素:数组名[i]

2.NSSet\NSMutableSet

 *无序 

 3.NSDictionary\NSMutableDictionary

 *无序

 *快速创建(不可变):@{key1 : value1,  key2 : value2}

 *快速访问元素:字典名[key]

NSValue/NSNumber

1.简介

在OC数组和字典中,只能存放OC对象。如果我们想传一个基本数据类型到数组中,比如int类型,只能将int包装成字符串对象:@“20”。

OC中提供这两个类NSValue、NSNumber,可以将任何基本数据类型转成NSValue或NSNumber类型的对象。

* NSNumber是NSValue的子类

* NSValue可以包装任何基本数据

* NSNumber只能包装数字(int、double、floa、BOOL、enum)

NSNumber的基本使用

1)基本用法

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对象

总结:

1.结构体一般用CG前缀而不用NS,CG是跨平台的。

2.调用CG开头的函数需要添加CoreGraphics框架
3.NSMutable开头的类都是可变的,都是不带Mutable的类的子类

4.基本数据类型与OC对象的转换:NSValue/NSNumber

5.默认显示时间是0时区的时间,北京是东8区。时间格式化:NSDateFormatter


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值