首页 > 代码库 > Foundation框架

Foundation框架

Foundation框架

正如其名,Foundation框架是其他所有ios框架的基础

Foundation框架包含了很多开发中常用的数据类型:

1.结构体

2.枚举

3.

要想使用Foundation中的数据类型,包含他的主文件即可

#import<Foundation/Foundation.h>

  • Foundation中的结构体

  • NSRange

  • NSPoint\CGPoint

  • NSSize\NSSize

  • NSRect\NSRect

NSRange中的成员

Location位置

length 长度

例如:

Love的范围

@I love oc

NSRange r1 = {2,4}//不用

NSRange r2 = {.location = 2,.length = 4};

NSRange r3 = NSMakeRange(2,4);

NSString *str = @”I love oc”;

//查找某个字符串在str中的范围

//如果找不到,length=0location=NSNotFound==-1

NSRange range = [str rangeOfString@”love”];

NSLog(@”loc=%ld,len=%ld”,range.location,range.length);

NSPoint\CGPoint

CGPointp1=NSMakePoint10,10);

NSPointp2 = CGPointMake10,10);//这个是开发中最常用的

NSSize\NSSize

表示UI元素的尺寸的

NSSize  s1 = CGSizeMake(100,50);

NSSize  s2 = NSMakeSize(100,50);

NSRect\NSRect

包含了CGPointCGSize

NSRect  r1 = CGRectMake(0,10,100,20);

当需要打印的时间要把结构体转换成字符串再进行打印

NSString  *mmm = NSStringFromPoint()

NSString  *mmm = NSStringFromSize()

NSString  *mmm = NSStringFromRect()

NSRect  r1 = CGRectMake{{0,0}{100,20}};

NSRect  r1 = CGRectMake{p1s2};

表示原点:CGPointZero == CGPointMake(0,0);

//比较两个点是否相同

BOOL  b = CGPointEqualToPoint(CGPointMake10,10),CGPointMake10,10)

CG需要导入框架CoreGraphics

Foundation中的类

NSString有个子类NSMutableString

NSArray有个子类NSMutableArray

NSSet有个子类NSMutableSet

NSDictionary有个子类NSMutableDictionary

NSDate

NDObject

1.    NSString

NSString:不可变字符串

NSMutableString:可变字符

A.        字符串的创建

NSString  *s1 = @”jack”;

NSString  *s2 = [[NSString alloc] initWithString:@”jack”];

NSString  *s3 = [[NSString alloc] initWithFormat:@”ageis %d”,10];

//c字符串转化成OC字符串

NSString  *s4 = [[NSString alloc] initWithUTF8Sting:”jack”];


//OC字符串转换成c字符串

Const char *C = [s4UTF8String]

//NSUTF8StringEncoding用到中文就可以用这种编码

NSString *s5 = [[NSString alloc]initWithCountsOfFile:@”/Users/apple/Desktop/1.txt”encoding:NSUTF8StringEncoding  error:nil];

//URL资源

NSString *s6 = [[NSString alloc]initWithCountsOfURL:@”file///Users/apple/Desktop/1.txt”encoding:NSUTF8StringEncoding  error:nil];


B.         NSMutableString可变字符串

补充词汇:append增加、拼接

NSRange跟删除字符串的结合使用

2.    集合类

NSArray有个子类NSMutableArray

NSSet有个子类NSMutableSet

NSDictionary有个子类NSMutableDictionary

a.    OC中的数组:NAArray

OC数组中不能存放基本数据类型,即只能存放OC对象不能存放非OC对象类型

NSArry *array =[NSArry  array]//这个array永远是空数组

NSArray              是一个不可变数组

NSMutableArray是一个可变数组

NSArray *array =[NSArray arrayWithObject@asfd”,@rose”,nil]//nil是数组元素结束的标记

@[]创建数组对象

数组中的遍历:

方式一、 For(int i=0;i<array.count;i++)

{

        NSLog@%@”,array[i];

}

方式二、 For(id obj in array)

{

        NSLog@”%@”,obj;

}

方式三、

//没遍历到一个元素,就会调用一次block

//并且当前袁术和索引位置当作参数传给Block

[array enumrateObjectUsingBlock:

^(id obj ,NSUInteger idx,BOOL*stop)

{

        NSLog(@“------------%ld--%@”idx,obj);

        If(ind==0){

        *stop= YES

}

}];


递归思想


NSMutableArray是一个可变数组

NSMutableArray*array = [NSMutableArray array];

//添加数组元素

[arrary addObject:[Person  alloc] init];

[arrary addObject:@”jack”];

//删除元素

[array removeAllObject];

[array removeObject:@”jack”]

//下面代码中2是数组的下标号

[array removeObjectAtIndex:2];

NSMutableArray中不能用@[]这个快速写数组,因为@[]数组是不可写数组

b.    NSSet是没有数据的

anyObject 随机返回元素

NSMurableSet

addObject

remove

c.     NSDictionary有个子类NSMutableDictionary

里面存储的东西都是键值对

@{keyvalue}但是快速创建自字典之后是不能更改的,即不可变的

字典的遍历:

方式一、NSDictiongary *dict = @{@”address”:@”北京”@”name”:@”jack”,@”qq”:@”565632362”};

NSArray *keys = [dict allKeys];

For(int i=0;i<dict.count;i++)

{

NSString *key =key[i];

NSString *object = dict[key];

}

方式二、

[dict enumerateKeyAndObjectsUsingBlock:^(id key,idobj,BOOL *stop){

        NSLog(@”%@--%@”keyobj)

        *stop =YES;//只遍历一次

}];

集合总结:

1.    NSArray\NSMutableArray

l  有序

l  快速创建(不可变的)@[]

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

2.    NSSet\ NSMutableSet

l  无序

3.    NSDictionary\NSMutableDictionary

l  无序

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

l  快速访问:字典名[key]

d.    NSNumber

@20 -------------20包装成一个NSNumber对象

e.    NSValue

这是一个万能包装,任何东西都能包装成NSValue对象

例如:

Int main()

{

        //结构体--àOC对象

        CGPointp = CGPointMake(10,10);

        NSValue*value = http://www.mamicode.com/[NSValue nalueWithPoint:p];

NSArray*array = @[ value];

}

  1. 4.    NSDate

NSDate *date =[NSDate date];       

//日期格式化

NSDateFormatter *formatter =[[NSDateFormatter alloc] init];

//yMd

//msH24)时h12)时

Formatter.dateFormar = @”yyyy-MM-ddHH:mm:ss”;

NSString *str = [formatterstringFromDate:date];



本文出自 “我成IT成长之路” 博客,请务必保留此出处http://jeason.blog.51cto.com/9704473/1595334

Foundation框架