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
  • 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),将一个字
        符串转化成一个点
  • 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
  • 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不为空,不包括边界
  • 示例
     #import <Foundation/Foundation.h>
    
     int main()
     {
         @autoreleasepool {
    
             BOOL result; //用于存储函数的返回值
             NSString *str; //用于存储转化得到的字符串
             //创建两个点对象
             NSPoint point = NSMakePoint(5, 8);
             NSPoint point2 = NSMakePoint(50, 8);
             //创建两个尺寸对象
             NSSize size = NSMakeSize(10, 20);
             NSSize size2 = NSMakeSize(10, 20);
             //创建两个矩形对象
             NSRect rect = NSMakeRect(0, 0, 20, 30);
             NSRect rect2 = NSMakeRect(0, 1, 20, 30);
    
             //判断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 0;
    }

字符串

  • 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,删除某个范围的对象
  • 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(5, 4);
        //快速创建一个NSString对象,存储姓名
        NSString *str = @"name:Jack";
        //创建一个NSNumber对象,存储学号
        NSNumber *number = [NSNumber numberWithInt:1];
        //创建一个不可变数组,存储多个姓名对象
        NSArray *objects = @[str, @"name:Lily", @"name:Lucy"];
        //创建一个可变数组,存储多个学号对象
        NSMutableArray *keys = [NSMutableArray arrayWithObjects:number, @2, @3, 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:@1];

        //检测结果,此时将遍历字典中所有的元素,不会停止
        [dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){

            NSLog(@"%@-%@", key, [obj substringWithRange:range]);
            if ([[obj substringWithRange:range] isEqualTo:@"Jack"])
            {
                //当遍历到Jack时停止(字典中无该键值对,不会停止)
                *stop = YES;
            }
        }];
    }
    return 0;
}
时间: 2024-10-11 01:07:11

OC - 7 Foundation框架的简单介绍的相关文章

Universal-Image-Loader(UIL)图片加载框架使用简单介绍

这个也是最近项目中使用到的第三方图片加载框架,在这里也自己总结一下,简单的介绍一些使用的方式. UIL图片加载框架特点 简介: 项目地址:https://github.com/nostra13/Android-Universal-Image-Loader 异步加载图片或者加载大量图片经常会遇到图片错乱或者OOM等相关问题.UIL图片缓存,目前使用最广泛的图片缓存,支持主流图片缓存的绝大多数特性. 我们看下该图片加载的三级缓存原理 特点: 1.多线程下载图片,图片可以来源于网络,文件系统,项目文件

黑马程序员学习笔记-OC之foundation框架

黑马程序员学习笔记-OC之foundation框架 1.简介:foundation框架是其它所有ios框架的基础,包含了很多常用类型,结构体.枚举.类等. 2. 结构体:NSRange表示范围的结构体. NSPoint/CGPoint表示坐标点的结构体 NSSize/CGSize表示宽高的结构体 NSRect/CGRect表示坐标点+宽高的结构体 3. 类字符串:NSString  字符串类 NSMUtableString  易变字符串类 NSArray         数组类 NSMUtabl

OC的Foundation框架

Foundation框架: 一:Foundation框架是Mac\iOS中其他框架的基础,内部包含了开发中常用的数据类型如:结构体.枚举和一些类 如果我们想使用Foundation框架中的功能,只要包含Foundation框架中的主头文件即可. #import <Foundation/Foundation.h> 该框架提供了非常好用的类,都以NS开头,比如 NSString:字符串 NSArray:数组 NSDictionary:字典 NSDatte:日期 NSData:数据 NSNumber

OC中Foundation框架的基本对象之数字对象

在Objective-C的程序编写主要用到两个框架 foundation和ApplicationKit.其中Foundation框架主要定义了一些基础类.Foundation框架中所有的类均继承自NSObject对象. Foundation框架中所提到的数字类型,可以通过NS数字类型将基本的数据类型封装到对象中,然后通过相应的对象进行操作. 1.数字对象的介绍 2.数字对象的创建并初始化 2.1用numberWith基本数据类型进行初始化(基本数据类型首字母大写). 格式:  数字对象=[NSN

OC中Foundation框架

框架的概念 1 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的组合,以便使研发程序变的更容易在OS X下地Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架 1 Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字典和集合,其他功能包括处理日期和时间.内存管理.处理文件系统.存储(或归档)对象.处理几何数据结果(如点和长方形) 2 Cocoa是Foundation和AppKit 3 Cocoa Touch是Fo

client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法

[本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄)~* 天天饭局搞得我是身心疲惫= = 所以更新比較慢 今天想跟大家分享的就是这个大名鼎鼎的React框架 简单介绍 React是近两年非常流行的框架 流行到什么程度呢? 我看了一下Github上的数据 React达到了5w8+的star 在JavaScript中star排名第4 受欢迎程度可见一斑

快速生成沙盒目录的路径,多图片下载的原理(SDWebImage框架的简单介绍)

一.快速生成沙盒目录的路径 这个类主要是为了方便你快速拿到沙盒目录里文件夹的路径 给NSString写个分类 NSString+CHG.h #import <Foundation/Foundation.h> @interface NSString (CHG) // 用于生成文件在caches目录中的路径 - (instancetype)cacheDir; // 用于生成文件在document目录中的路径 - (instancetype)docDir; // 用于生成文件在tmp目录中的路径 -

NIO框架的简单介绍

Java NIO框架MINA用netty性能和链接数.并发等压力测试参数好于mina. 特点:1.NIO弥补了原来的I/O的不足,它再标准java代码中提供了高速和面向块的I/O原力的I/O库与NIO最重要的区别是数据打包和传输方式的不同,原来的I/O以流的方式处理数据,而NIO以块的方式处理数据: 2.NIO以通道channel和缓冲区Buffer为基础来实现面向块的IO数据处理,MINA是开源的. JavaNIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O

SQLite数据库框架--FMDB简单介绍

1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的Core Data框架,更加轻量级和灵活 提供了多线程安全的数据库操作方法,有效地防止数据混乱 3.FMDB的github地址 https://github.com/ccgus/fmdb 二.核心类 FMDB有三个主要的类 (1)FMDatabase 一个FMDatabase对象就代表一个