黑马程序员---IOS基础---OC之Foundation框架的基本对象

来源:互联网 发布:联想电脑mac地址查询 编辑:程序博客网 时间:2024/06/07 17:20

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流!-----OC之Foundation框架的基本对象

一、数字对象

Foundation框架中所提到的数字类型,可以通过使用NS数字类型将基本的数据类型封装到对象中,然后对相应的对象进行操作。下面来讲解数字对象的定义形式和适应方法。

(1)介绍:Foundation框架中提供了NSNumber对基本的数据类型进行封装。通过调用数字对象的类方法和对象方法,将基本的数据类型转化为数字对象。

(2)数字对象的声明:格式:NSNumber *数字对象;注:*号切记不能丢失,否则编译时会报错。

(3)数字对象的创建并初始化

1.创建并初始化方法:numberWith基本数据类型:数据。注:基本数据类型的第一个字母要大写。例如:numberWithInt:10;

2.创建并初始化形式:数字对象=[NSNumber 创建和初始化方法 ];例如:Mynumber = [NSNumber numberWithFloat:10.00];

          注意:赋值的数据类型必须与前面的创建并初始化的一致,假如把上面的10.00改为10,就是不对的。

3.初始化方法:initWith基本数据类型:例如:initWithChar;

4.初始化形式:数字对象名=[[NSNumber alloc]初始化方法 初始化值];例如:Mynumber=[[NSNumber alloc]initWithInt 15];

5.取值方法的表示形式:基本数据类型Value;

6.取值途径:[对象名 取值方法];

二、字符串对象

(1)组成格式:使用@和双引号括起来,例如:@"hello world";

(2)占用内存大小:一个字符占一个字节,字符串占用内存大小为字符串所有字符的字节数加1,其中加的一个字节为结束标志符'\0';

(3)不可修改的字符串

1.头文件:需添加#import <Foundation/NSString.h>

2.定义形式:NSString *标识符;

3.初始化形式:标识符=@"需要赋的字符串";

4.用一个字符串对象创建另一个字符串对象,格式:stringWithString:(NSString *)string.

5.用NSLog()格式创建字符串,stringWithFormat:nsstring。

6.在一个字符串后面增加一个新的字符串,stringByAppendingString:nsstring;

7.字符串的比较和判断,格式:isEqualToString:nsstring;

8.字符串的小写字母转换为大写字母,格式:字符串变量2=[字符串变量1 uppercaseString];

9.字符串的大写字母转换为小写字母,格式:字符串变量2=[字符串变量1 lowercaseString];

10.截取字符串,格式:字符串变量2=[字符串变量1 substringToIndex:n];n为截取字符串长度。

       (4)可修改字符串:使用NS字符串NSString的时候,字符串对象时不可以修改的,如果需要对字符串对象进行插入、删除或者其他操作时,就需要使用NS可变的字符串NSMutableString,它是NSString的子类,所以前者继承了后者的类方法和对象方法。

1.字符串声明格式:NSMutableString *字符串变量;

2.在一个字符串末尾附加一个字符串,格式:[字符串变量名1 appendString:字符串或变量名];

3.附加一个格式化字符串,格式:[字符串变量名1 appendFormat:@"%@",字符串变量2];

三、数组对象

Foundation框架提供了NS数组类型,NS数组类型包括可修改的和不可修改的数组两类,只能存放相关的对象类型,提供了基本的数组操作方法,对数组的相关操作进行了封装。下面主要讲解数组对象的相关操作。

(1)数组的声明,格式:数组类型 数组名[数组大小];例如:int score[5];

(2)数组的初始化,两种方式:

        1.声明的同时进行初始化,例如:int score[5]={1,2,3,4,5};

        2.先声明后进行初始化,例如:int score[5]; score[5]={1,3,5,7,9};

(3)数组的大小,数组的大小为常量,不能使用变量。例如:int score[i];这句话是不正确的。

(4)数组的引用:一维数组的引用:数组名[下标]。例如:score[4];

(5)二维数组的声明和定义:格式:数据类型 数组名[行数][列数];例如:int a[3][4];声明并定义了一个3行4列的整型数组。

(6)二维数组的初始化:和C语言中二维数组初始化一样,都分为2种形式,1.int a[2][3]={1,2,3,4,5,6}; 2.int a[2][3]={{1,2,3},{4,5,6}};注:还有部分初始化和完全初始化之分,上面为完全初始化,部分初始化形式:int a[2][3]={0,1,2,3}或int a[2][3]={{0,1,2}};未初始化的部分系统默认为0.

(7)二维数组的引用:数组名 [下标1][下标2];例如:a[0][2]; 

(8)字符数组的声明:一维字符数组:char 字符数组名[数组长度];二维字符数组:char 字符数组名[长度1][长度2];

(9)字符数组初始化:分为两种,一种是逐个给字符数组赋值,一种是将整个字符串给字符数组赋值。下面来讲解这2种方法

1.逐个赋值,例如:char str[6]={'H','e','l','l','o'};

2.用整个字符串赋值,例如:char str[6]={"Hello"};

注意:赋值的字符长度要小于数组长度,因为字符数组末尾要加一个结束标志符'\0';

(10)字符数组的引用,两种输入输出方式:

1.逐个字符的输入输出,用格式"%c"输入输出一个字符

2.整个字符串一次性输入输出,用格式"%s"输入输出一个字符串。

(11)不可修改的数组

当我们使用不可修改的数组时,就要使用NSArray来进行操作。要使用头文件:#import <Foundation/NSArray.h>;

1.声明和创建数组,用“arrayWithObject“类方法对数组进行初始化,例如对一数组对象name进行创建和初始化:NSArray *name = [ NSArray arrayWithObject:@"张三","李四","王五",nil];注:nil不可缺少,否则会报错。

2.不可变数组的引用:[数组对象名 objectAtIndex:i];i为数组元素的位置。

(12)可修改的数组

NSArray是一个静态的使用,我们不能在数组中添加和删除元素,所以OC提供了NSMutableArray来动态的管理这些数组。后者是前者的子类,故继承了前者的所有方法,而又有自己独特的方法。下面我们来讲解一下这些独特的方法。

1.创建和初始化可修改的数组,形式:NSMutableArray *数组对象名=[[NSMutableArray alloc]init];

2.添加一个元素,格式:[数组对象名 addObject:添加的元素];

3.删除制定的元素,格式:[数组对象名 removeObject:要删除的元素];

4.删除所有元素,格式:[数组对象名 removeAllObject];

5.在制定的位置添加新元素,格式:[数组对象名 insertObject:新元素 atIndex:要插入的位置];

四、字典对象

我们可以用数组存放有序对象的集合,但是要存放具有关键字的对象的集合使用数组时不够的。因此,OC中提供了一个新的对象叫字典,它可以存放具有关键字的对象的集合,分为不可修改的字典和可修改的字典两种。下面来讲解这方面知识。

(1)不可修改的字典

字典中的每一项都有一个关键字和一个值,简称“键-值”,关键字是唯一的,但值是可以相同也可以不同的。我们要使用不可修改的字典就要使用NSDictionary来进行操作。这就需要使用头文件:#import <Foundation/NSDictionary.h>.

1.字典的创建和初始化,我们使用“dictionaryWithObjectsAndKeys”类方法进行初始化,例如employees字典进行创建和初始化:

[NSDictionarydictionaryWithObjectsAndKeys:@"Tom",@"Lucy",@"Lily",nil];

2.获取字典中“键-值”的个数,用count获得该个数,例如:[字典对象名 count];

3.查找某一关键字对应的值,objectForKey是字典中查找某个关键字所对应的值,如果关键值对应的值不存在,就返回nil.

使用形式:[字典对象名 objectForKey:关键字];

(2)可修改的字典

不可修改的字典和不可修改的数组一样,不可动态的插入和删除字典元素,可修改字典解决里这一问题。下面来讲解可修改字典。

1.动态字典的声明和初始化形式:NSMutableDictionary *字典对象名=[[NSMutableDictionary alloc]init];

2.设置值和键,使用setObject来设置,格式:[字典对象名 setObject:值 forKey:键];

3.删除键所制定的值,removeObjectForKey是用来删除键所对应的值的,格式:[字典对象名 removeObjectForKey:键];

4.删除所有的元素,removeAllObjects是删除字典对象中所有的元素,格式:[字典对象名 removeAllObjects];

五、集合对象

NSArray类提供类一个可用于存储有序对象的集合的集合,NSSet提供一个可用于无序对象的集合的集合。在集合中分为可修改和不可修改的两种集合,下面我们来讲解相关知识。

(1)不可修改集合

要使用不可修改的集合时,就要使用 NSSet来进行操作,这就需要插入头文件:#import <Foundation/NSSet.h>;

1.不可修改集合的创建和初始化,我们使用“setWithObjects”类方法进行初始化,例如,创建一个set集合并对其进行初始化:

NSSet *set=[NSSetsetWithObjects:@"abc",@"four",@"hello",nil];

2.获得集合元素的个数,使用count功能来实现,例如:[集合对象 count];

3.判断两个集合是否相等,isEqualToSet是判断两个集合是否相等的,若相等则BOOL值为YES,不相等BOOL值为NO.

使用形式:[集合对象1isEqualToSet:集合对象2];

(2)可修改的集合,使用NSMutableSet集合来被动态添加和删除。

1.创建可修改的集合,有两种方法,一个是不带任何参数的创建,另一个是带固定长度的创建。

   1.1不带参数的创建形式:NSMtableSet *集合对象名=[NSMutableSet set];

   1.2带固定长度参数的创建形式:NSMtableSet *集合对象名=[NSMutableSet setWithCapacity:size];size集合的大小。

2.将元素对象添加到集合中,addObject是在集合中添加元素对象,形式:[集合对象吗 addObject:元素对象];

3.删除集合中元素对象,removeObject是删除集合中的元素对象,形式:[集合对象吗 removeObject:元素对象];

4.删除集合中所有元素对象,removeAllObjects是将集合中所有元素删除,形式:[集合对象吗 removeAllObjects];

5将集合中元素对象添加到另一个集合中,unionSet来实现这个功能,形式:[集合对象1 unionSet:集合对象2]。


0 0
原创粉丝点击