OC - 7.Foundation框架的简单介绍
OC语言-07-OC语言-Foundation框架
结构体
NSRange/CGRange
- 用来表示一个元素在另一个元素中的范围,NSRange等价于CGRange
 包含两个属性:
- NSUInteger location:表示一个元素在另一个元素中的位置
 - NSUInteger length:表示该元素的长度
 
- 若找不到指定的元素,将返回NSNotFound(整型-1)
 常用函数
- NSRange NSMakeRange(NSUInteger loc, NSUInteger len)
创建一个NSRange类型的变量,将其两个属性初始化为loc和len
并返回创建好的变量 - BOOL NSLocationInRange(NSUInteger loc, NSRange range)
查看某个位置是否在某个范围内,返回一个BOOL类型数据 - BOOL NSEqualRanges(NSRange range1, NSRange range2)
判断两个范围是否相等,当range1.location = range2.location
且range1.length = range2.length时才相等 - NSString *NSStringFromRange(NSRange range)将一个range
转换成字符串 - NSRange NSStringFromRange(NSString *string)将一个字符串
转换成range 
- NSRange NSMakeRange(NSUInteger loc, NSUInteger len)
 
NSPoint/CGPoint
- 用来存储一个点,NSPoint等价于CGPoint
 包含两个属性:
- CGFloat x:表示该点的横坐标值
 - CGFloat y:表示该点的纵坐标值
 
常用函数
- NSPoint NSMakePoint(CGFloat x, CGFloat y),用来创建一
个点,并用x与y初始化成员变量 - BOOL NSEqualPoints(NSPoint aPoint, NSPoint bPoint)
判断aPoint与bPoint是否为同一个点 - BOOL NSPointInRect(NSPoint aPoint, NSRect aRect)判断点
aPoint是否在矩形aRect中 - NSString *NSStringFromPoint(NSPoint aPoint),将一个点
转化为字符串 - NSPoint NSPointFromString(NSString *aString),将一个字
符串转化成一个点 
- NSPoint NSMakePoint(CGFloat x, CGFloat y),用来创建一
 
NSSize/CGSize
- 用来存储一个元素的尺寸,NSSize等价于CGSize
 包含两个属性:
- CGFloat width:表示该元素的宽度
 - CGFloat height:表示该元素的高度
 
常用函数
- NSSize NSMakeSize(CGFloat w, CGFloat h),用来创建一个
NSSize元素,并用x和y初始化成员变量 - BOOL NSEqualSizes(NSSize aSize, NSSize bSize),判断尺
寸aSize与尺寸bSize是否相等 - NSString *NSStringFromSize(NSSize aSize),将尺寸元素aSize
转换成字符串 - NSSize NSSizeFromString(NSString *aString),将字符串转换
成尺寸元素aSize 
- NSSize NSMakeSize(CGFloat w, CGFloat h),用来创建一个
 
NSRect/CGRect
- 用来存储一个元素左上角的点和该元素的尺寸信息, NSRecta
等价于CGRect 包含两个属性:
- CGPoint origin:用来表示该元素左上角的点
 - CGSize size:用来表示该元素的尺寸
 
常用函数
- CGRect CGRectMake(CGFloat x, CGFloat y, CGFloat width,
CGFloat height),用来创建一个CGRect变量,并用x和y初始化
成员变量origin,用width和height初始化成员变量size - bool CGRectEqualToRect(CGRect rect1, CGRect rect2),
比较两个rect1与rect2是否相等 - bool CGRectContainsPoint(CGRect rect, CGPoint point),
判断点point是否在元素rect中 - bool CGRectContainsRect(CGRect rect1, CGRect rect2),
判断元素rect1是否包含rect2,rect1与rect2不为空,不包括边界 
- CGRect CGRectMake(CGFloat x, CGFloat y, CGFloat width,
 
- 用来存储一个元素左上角的点和该元素的尺寸信息, NSRecta
 示例
#import <Foundation/Foundation.h> int main()
{
@autoreleasepool { BOOL result; //用于存储函数的返回值
NSString *str; //用于存储转化得到的字符串
//创建两个点对象
NSPoint point = NSMakePoint(, );
NSPoint point2 = NSMakePoint(, );
//创建两个尺寸对象
NSSize size = NSMakeSize(, );
NSSize size2 = NSMakeSize(, );
//创建两个矩形对象
NSRect rect = NSMakeRect(, , , );
NSRect rect2 = NSMakeRect(, , , ); //判断point与point2是否相同
result = NSEqualPoints(point, point2);
//判断point是否在某个矩形rect
result = NSPointInRect(point, rect);
//判断point2是否在某个矩形rect
result = NSPointInRect(point2, rect); //判断size与size2是否相同
result = NSEqualSizes(size, size2); //判断rect与rect2是否相同
result = NSEqualRects(rect, rect2);
//判断rect是否包含rect2
result = CGRectContainsRect(rect, rect2); //将point、size、rect转化成字符串
str = NSStringFromPoint(point);
str = NSStringFromSize(size);
str = NSStringFromRect(rect); }
return ;
}
字符串
NSString
- 是一个OC类,用于操作OC字符 串
 - 创建的OC字符串对象是不可变 的
 - 通常情况下,一个类方法对应一个完成相同功能的对象方 法
 - ,返回不可变字符 串
 常用创建字符串的的类方法(通常以类名开头 )
- + (instancetype)string,创建一个NSString对象
 - + (instancetype)stringWithString:(NSString *)string,创建一个NSString对象,并用OC字符串String初始 化
 - + (instancetype)stringWithCharacters:(const unichar *)character slength:(NSUInteger)length,通过字符串指针以及一定长度的字符串创建一个NSString对 象
 - + (instancetype)stringWithFormat:(NSString *)format ,合成一个字符串
 - + (instancetype)stringWithCString:(const char *)cStringencoding:(NSStringEncoding)enc,通过一个C语言字符串创建一个OC字符 串
 - + (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error, 通过统一资源定位符URL创建OC字符 串
 - + (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;通过文件内容创建OC字符串
 
常用创建字符串的对象方法
- 对象方法与类方法相似,通常以init开头,这里不在列举
 
常用的字符串操作方法
- - (unichar)characterAtIndex:(NSUInteger)index,返回字符串中指定索引位置的字符
 - - (void)getCharacters:(unichar *)buffer range:(NSRange), aRange,找到指定位置的字符串,存储到buffer 中
 - - (void)getCharacters:(unichar *)buffer,获取buffer中的字符串
 - - (NSString *)substringWithRange:(NSRange)range,返回某个范围的子串
 - - (NSComparisonResult)compare:(NSString *)string,比较两个字符串,返回枚举NSComparisonResult的变量
 - - (BOOL)containsString:(NSString *)aString,判断是否包含字符串aString
 - - (NSRange)rangeOfString:(NSString *)aString,返回该字符串中aString的范围
 
NSMutableString
- 继承自NSString,创建可变的字符串对象
 NSMutableString扩充的方法
- - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString,用aString替换指定范围的字符串
 - - (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc,在索引loc处插入字符串aString
 - - (void)deleteCharactersInRange:(NSRange)range,删除指定范围的字符串
 - - (void)appendString:(NSString *)aString,将aString拼接在该字符串的末尾,扩充字符串
 - - (void)appendFormat:(NSString *)format,通过一个和成的子符串format来扩充字符串
 - - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile,将字符串写到以字符串形式表示路径的文件中
 
集合
NSArray/NSMutableArray
- OC数组,数组对象为任何OC对象,非OC对象必须转化成相应的OC
对象 - 数组元素不能为nil,nil是OC数组结束的标志
 - 可以通过@[]快速,返回不可变数组
 常用的创建数组类方法
- + (instancetype)array,创建一个空的数组对象
 - + (instancetype)arrayWithObject:(id)anObject,通过OC对象来创建数组
 - + (NSArray )arrayWithContentsOfFile:(NSString )path通过文件内容创建数组
 - + (NSArray )arrayWithContentsOfURL:(NSURL )url,通过统一资源定位符URL创建数组
 
常用的创建数组对象方法
- 对象方法与类方法相似,以init开头
 
常用的数组操作函数
- - (NSUInteger)indexOfObject:(id)anObject,找到指定对象的索引
 - - (BOOL)isEqualToArray:(NSArray *)otherArray,判断两个数组中的元素是否相同
 - - (NSArray *)sortedArrayUsingSelector:(SEL)comparator通过SEL调用方法,来对数组排序
 - - (NSArray *)subarrayWithRange:(NSRange)range,返回数组中子数组的范围
 - - (void)enumerateObjectsUsingBlock:(void (^)(id obj, NSUInteger idx, BOOL *stop))block,枚举数组中的元素并调用block,通常用于遍历一个数组
 
- NSMutableArray继承自NSArray,创建可变数组
 NSMutableArray扩充的方法
- - (void)addObject:(id)anObject,给数组添加一个OC对象
 - - (void)insertObject:(id)anObject atIndex:(NSUInteger)index在指定索引位置插入一个OC对象
 - - (void)removeObjectAtIndex:(NSUInteger)index,删除某个索引位置的对象
 - - (void)removeAllObjects,删除所有的数组元素
 - - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject,用指定对象替换指定索引位置的对象
 - - (void)removeObject:(id)anObject inRange:(NSRange)range,删除某个范围的对象
 
- OC数组,数组对象为任何OC对象,非OC对象必须转化成相应的OC
 NSSet/NSMutableSet
- NSSet,无序数组,不可变
 - NSMutableSet,无序数组,可变
 
NSDictionary/NSMutableDictionary
- NSDictionary,不可变字典类
 - 元素为Object:key键值对,key值必须唯一,键值对无序
 常用的创建字典对象的方法
- + (instancetype)dictionaryWithObject:(id)object forKey:(id < NSCopying >)key,通过键值对创建字典
 - - (instancetype)initWithObjects:(const id [])objects forKeys:(const id [])keys count:(NSUInteger)cnt,通过objects数组和keys数组创建字典
 - + (instancetype)dictionaryWithObjectsAndKeys:(id)firstObject, ...通过多个键值对创建数组
 
常用的字典操作函数
- - (BOOL)isEqualToDictionary:(NSDictionary *)otherDictionary判断两个字典是否相等
 - - (NSArray )objectsForKeys:(NSArray )keys notFoundMarker:(id)marker,通过一个键值数组返回一个对象数组
 - - (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,id obj, BOOL *stop))block 通过block来遍历字典
 - - (void)removeObjectForKey:(id)aKey,删除指定键值的对象
 - - (void)removeAllObjects,删除所有的对象
 
NSNumber与NSValue
NSValue
- OC类,用于封装普通类型数据
 
NSNumber
- 继承自NSValue,通常用于将普通数据类型如int、char等,转换为相应的OC对象
 常用的初始化类方法
- + (NSNumber *)numberWithChar:(char)value,将char类型转换成OC对象
 - 其他的方法与上述方法类似,只需将char换成其他类型名,如:int,long等
 
常用的初始化对象方法
- - (NSNumber *)initWithInt:(int)value,将int类型数据转换为OC对象
 - 其他方法与上述方法相似,只需将Int换成相应的数据类型,如char,short等
 
常用操作NSNumber对象的方法
- - (NSComparisonResult)compare:(NSNumber *)otherNumber比较两个NSNumber对象,返回枚举类型
 - - (BOOL)isEqualToNumber:(NSNumber *)number,比较两个NSNumber对象,返回BOOL类型
 
NSDate
作用
- OC类,用于存储时间信息
 - 可以通过NSDateFormatter指定时间的格式
 
常用的方法
- - (instancetype)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti, 创建一个时间对象,用ti初始化,NSTimeInterval本质是long类型
 - - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate, 返回自某个时间其到代码调用所经过的秒数
 - - (NSComparisonResult)compare:(NSDate *)other,比较两个日期,返回枚举类型
 - - (BOOL)isEqualToDate:(NSDate *)otherDate,比较两个日期是否相等
 - \timeIntervalSince1970是一个成员变量,可以通过它调用get方法返回从1970年起经历的时间(单位为:秒)
 - + (instancetype)date,返回当前的0时区时间
 
示例
#import <Foundation/Foundation.h>
int main()
{
@autoreleasepool {
//定义一个NSDate类型,用于输出程序执行时的时间
NSDate *date = [NSDate date];
//指定时间的格式
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy年/MM月/dd日/ HH:mm:ss";
//将时间类型转换为字符串
NSString *time = [formatter stringFromDate:date];
NSLog(@"%@", time); //定义一个范围,用于指定某个范围的字符串
NSRange range = NSMakeRange(, );
//快速创建一个NSString对象,存储姓名
NSString *str = @"name:Jack";
//创建一个NSNumber对象,存储学号
NSNumber *number = [NSNumber numberWithInt:];
//创建一个不可变数组,存储多个姓名对象
NSArray *objects = @[str, @"name:Lily", @"name:Lucy"];
//创建一个可变数组,存储多个学号对象
NSMutableArray *keys = [NSMutableArray arrayWithObjects:number, @, @, nil];
//创建一个可变字典,通过数组objects,keys初始化
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] initWithObjects:objects forKeys:keys]; //快速遍历objects数组
for (id obj in objects)
{
//找到obj中指定范围的子串
NSString *name = [obj substringWithRange:range];
NSLog(@"%@", name);
} //通过block遍历字典中的元素
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ NSLog(@"%@-%@", key, [obj substringWithRange:range]);
if ([[obj substringWithRange:range] isEqualTo:@"Jack"])
{
//当遍历到Jack时停止
*stop = YES;
}
}]; //清除key值为@1的键值对
[dictionary removeObjectForKey:@]; //检测结果,此时将遍历字典中所有的元素,不会停止
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ NSLog(@"%@-%@", key, [obj substringWithRange:range]);
if ([[obj substringWithRange:range] isEqualTo:@"Jack"])
{
//当遍历到Jack时停止(字典中无该键值对,不会停止)
*stop = YES;
}
}];
}
return ;
}
OC - 7.Foundation框架的简单介绍的更多相关文章
- iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍
		
一.快速生成沙盒目录的路径 沙盒目录的各个文件夹功能 - Documents - 需要保存由"应用程序本身"产生的文件或者数据,例如:游戏进度.涂鸦软件的绘图 - 目录中的文件会被 ...
 - OC中Foundation框架之NSString、NSMutableString
		
创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@&q ...
 - OC中Foundation框架
		
框架的概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的组合,以便使研发程序变的更容易在OS X下地Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架 ...
 - client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法
		
[本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄) ...
 - java框架复习  简单介绍   (转载)
		
一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MV ...
 - dubbo框架的简单介绍
		
以下的官网的介绍. dubbo是SOA.小例子是简单的远程调用(生产者消费者的模式出现).http://blog.csdn.net/huangyekan/article/details/4217267 ...
 - 黑马程序员——OC语言Foundation框架 结构体
		
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)结构体 NSRange(location length) NSPoi ...
 - hadoop备战:yarn框架的简单介绍(mapreduce2)
		
新 Hadoop Yarn 框架原理及运作机制 重构根本的思想是将 JobTracker 两个基本的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控.新的资源管理器全局管理全部应用程序计 ...
 - ReactiveObjC框架的简单介绍
		
最近在一直在学习RAC框架的Object-C版本ReactiveObjC(Swift版本为ReactiveSwift),这篇文章简单展示一下学习的成果!!!如果有什么地方理解错误,欢迎大家指正!!!互 ...
 
随机推荐
- hive0.11的编译/安装/配置
			
一.获取hive 0.11文件 1.直接在apache网站下载release版 2.自己下载源码编译.方法: git clone https://github.com/amplab/hive.git ...
 - 【ACM/ICPC2013】树形动态规划专题
			
前言:按照计划,昨天应该是完成树形DP7题和二分图.最大流基础专题,但是由于我智商实在拙计,一直在理解树形DP的思想,所以第二个专题只能顺延到今天了.但是昨天把树形DP弄了个5成懂我是很高兴的!下面我 ...
 - 微软2016校园招聘4月在线笔试 ABC
			
题目链接:http://hihocoder.com/contest/mstest2016april1/problems 第一题:输入N,P,W,H,代表有N段文字,每段有ai个字,每行有⌊W/S⌋个字 ...
 - fcntl记录锁实例
			
fcntl 函数是一个相当常用的对文件进行加锁操作的函数. 文件锁包括强制锁.建议锁.记录锁, 不过一般系统和内核都是用的强制锁. 以下为记录锁的例子:------------------------ ...
 - iOS开发中打开本地应用、打开appStore应用、给app评分功能实现
			
app开发中,通常会有邀请用户给app打分的功能.而在iOS中,正式应用都是通过appStore 下载的,因此给app 打分也只能在 appStore中.因此,需要从应用跳转到appStore.方法是 ...
 - spring tranaction 事务入门
			
一.事务四个属性 原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(consistency).事务必须是使数据库从一个一致性状态变到另一 ...
 - IOS 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: URLString'
			
转载自:http://i.cnblogs.com/EditPosts.aspx?postid=4012011 今天想写一个请求的天气,好的,废话不多说,先贴代码: 使用AFNetWorking 发送g ...
 - python中的对象拷贝
			
python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引用传递.那python怎样对列表和字典进行拷贝传递呢:标准库的copy模块提供了两个方法:copy和d ...
 - 安装SQL Server提示“重叠的IO操作正在进行”解决
			
单位新做了一个虚机.打算部署一套.Net SQL 的系统 系统是Server 2008 R2,机器除了系统,其它软件都没有. 所以须要安装SQL Server啊,.Net环境啊.配置IIS== 恰巧的 ...
 - core dump +   LINUX 内核系列博客
			
参考:http://www.cnblogs.com/ahuo/category/72819.html http://blog.csdn.net/tenfyguo/article/details/815 ...