Foundation框架3.ppt
《Foundation框架3.ppt》由会员分享,可在线阅读,更多相关《Foundation框架3.ppt(30页珍藏版)》请在冰豆网上搜索。
Foundation框架,核心内容,Foundation框架数字对象常用处理方法字符串对象常用处理方法数组对象常用处理方法字典和集合对象常用处理方法,约定速成的命名规则,类名首字母大写变量名和方法名首字母小写使用驼峰标志,1认识Foundation框架,框架是有许多类、方法、函数以及文档按照一定的规则组织起来的集合,以便于程序员更加方便、迅速的开发程序。
cocoa程序编写主要用到2个框架Foundation和ApplicationKit(UIKit)。
其中Foundation框架主要定义了一些基础类,供程序员来使用,而ApplicationKit主要是一些用户界面设计的类,用于Mac开发使用此库。
Foundation框架中的所有类都继承自NSObject这个对象。
作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,以及一些其他的与图像用户界面没有直接关系的功能。
其中用于类和常数的“NS”前缀来自于Cocoa的来源,NextSTEP。
它可以在MacOXX和iOS中使用。
2、数字对象的常用处理方法,在之前的学习中,我们已经学习了基本数据类型。
但这些都是基本数据类型,它们不是对象,因此,不能向它们发送消息。
然而有时也需要将他们当做对象来处理。
比如,我们需要把基本类型放入集合中(在cocoa中集合只能存放对象,无法存放基本数据类型),那么这时我们需要将基本类型转换为数字对象。
OC中提供了数字对象“NSNumber”可以将基本数据类型“包装”成对象,这样我们就可以将数据类型来处理了。
数字对象的初始化,/类方法创建数字对象intnumber=10;NSNumber*intNumber=NSNumbernumberWithInt:
number;BOOLisBool=YES;NSNumber*boolNumber=NSNumbernumberWithBool:
isBool;,数字对象创建与转换,数字对象的转化,/实例方法创建数字对象floatpi=3.14;NSNumber*piNumber=NSNumberallocinitWithFloat:
pi;charcharacter=a;NSNumber*cNumber=NSNumberallocinitWithChar:
character;,/还原成基本数据类型intmonth=intNumberintValue;BOOLisOpen=boolNumberboolValue;floatlength=piNumberfloatValue;charfirstName=cNumbercharValue;,(看代码FoundationDemo1),3、字符串的基本概念和常用处理方法,在Foundation框架中,提供了NSString类,用于处理字符串对象。
在C语言中字符串在一对引号中表示。
OC是C语言的一种延展,换句话说,OC语言是建立在C语言的基础上的(C的基础上添加了面向对象的内容,smalltalk语言)。
因此,为了区别两者的字符串,OC语言的字符串必须以开头,引号当中则是字符串的内容,如“abc”。
此外,NSString对象,一旦被创建,就不可以更改。
如若需要一个可以更改的字符串对象,需要创建NSMutableString实例。
字符串对象的创建,字符串的创建创建一个字符串创建一个空的字符串快速创建一个字符串,NSString*string=这是一个字符串常量;,NSString*string1=NSStringallocinit;,NSString*string2=NSStringstring;,NSString*string=NSStringallocinitWithString:
快速创建字符串;,NSString*string=NSStringstringWithString:
快速创建一个字符串;,比较字符串对象,intnumber=2;NSString*string=NSStringallocinitWithFormat:
%d,numnber;,快速创建一个格式化字符串,floatnumber=2.4;NSString*string=NSStringstringWithFormat:
浮点数%f,number;,比较字符串测试字符串内容是否相同,NSString*string1=NSStringallocinitWithFormat:
test;NSString*string2=NSStringallocinitWithFormat:
test;if(string1isEqualToString:
string2)NSLog(测试连个字符串是否相等);,比较字符串对象,测试字符串是否为同一个对象比较字符串的大小求字符串的长度,NSString*string1=NSStringallocinitWithFormat:
test;NSString*string2=NSStringallocinitWithFormat:
test;if(string1=string2)NSLog(测试两个字符串是否为同一个对象);,NSString*string1=NSStringallocinitWithFormat:
a;NSString*string2=NSStringallocinitWithFormat:
b;NSLog(string1caseInsensitiveCompare:
string2:
%ld,string1caseInsensitiveCompare:
string2);,字符串对象的转换,NSString*string1=NSStringallocinitWithFormat:
stringlength;NSUInteger*length=string1length;,字符串的转换,改变字符串大小写,NSString*hello=helloWORLD;NSLog(“%”,hellouppercaseString);/全部大写NSLog(%,hellolowercaseString);/全部小写NSLog(%,hellocapitalizedString);/首字母大写,其他字母小写,将字符串转换成基本数据类型,NSString*string=2.467;NSLog(%d,stringboolValue);/转换成BOOL类型NSLog(%f,stringfloatValue);/转换成浮点型NSLog(%f,stringdoubleValue);/转换成双精度型NSLog(%d,stringintValue);/转换成整型,截取字符串对象,NSString*string=OneTwoThreeFour;NSArray*array=stringcomponentsSeparatedByString:
;,将字符串转换为数组,字符串的截取与拼接,截取字符串,NSString*string=NSStringallocinitWithFormat:
abcdef;/从字符串的开头一直截取到指定的位置,但不包括该位置的字符NSString*string1=stringsubstringToIndex:
2;/以指定位置开始(包括指定位置的字符),并包括之后的全部字符NSString*string2=stringsubstringFromIndex:
2;,拼接字符串对象,截取字符串,NSRangerang;rang.location=2;rang.length=2;NSString*string3=stringsubstringWithRange:
rang;,NSString*str1=1,*str2=2;NSString*string=NSStringallocinitWithFormat:
这时拼接:
%and%,str1,str2;NSString*string1=str1stringByAppendingFormat:
%,str2;NSString*string2=str1stringByAppendingString:
str2;,查询字符串,查询字符串对象,NSString*link=asdastarget=_blankddasd;NSRangerange=linkrangeOfString:
target=_blank;if(range.location!
=NSNotFound)NSLog(string找到了);,可变字符串对象,可变字符串-NSMutableString,它继承自NSString,插入字符串删除字符串替换字符串,NSMutableString*str=NSMutableStringstringWithString:
字符串;strinsertString:
可变atIndex:
0;,NSMutableString*str=NSMutableStringstringWithString:
字符串;strdeleteCharactersInRange:
NSMakeRange(1,2);,NSMutableString*str=NSMutableStringstringWithString:
字符串;strreplaceCharactersInRange:
NSMakeRange(0,2)withString:
羊肉;,4、集合-数组的概念和常用方法,数组的基本概念Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合,通过索引下标取到数组中的各个元素。
与字符串相同,数组也有可变和不可变数组之分。
此外,数组中不可以存放基本数据类型,只能存放类的实例(对象)。
如若需要将基本数据类型、结构体放入数组中,需要通过NSNumber、NSValue进行数据的“封装”;不可变数组-NSArray,数组的初始化,NSArray*firstArray=NSArrayarrayWithObject:
one;/多个元素初始化时,注意nil作为数组的结束NSArray*secondArray=NSArrayarrayWithObjects:
one,two,nil;NSArray*thirdArray=NSArrayarrayWithArray:
secondArray;NSArray*FourArray=NSArrayarrayWithContentsOfFile:
path;,数组的常用方法,常用方法,NSArray*array=NSArrayarrayWithObjects:
a,b,c,nil;/获取数组中的元素个数NSIntegercount=arraycount;/根据下标访问对象NSString*firstObj=arrayobjectAtIndex:
0;/在原来的数组上追加对象,返回一个新的数组对象NSArray*addArray=arrayarrayByAddingObject:
ddd;/用指定的字符串将数组中的元素连接起来NSString*arrayStr=arraycomponentsJoinedByString:
;/数组中是否包含某对象BOOLisContain=arraycontainsObject:
bbb;/查询指定对象在数组中的元素,如果没此元素,返回NSNotFoundNSIntegerindex=arrayindexOfObject:
ccc;/获取数组中最后一个元素NSString*lastString=arraylastObject;,可变数组的常用方法,可变数组-NSMutableArray,它继承自NSArray,常用方法,/初始化,设定元素个数为5,但可以更改NSMutableArray*mutableArray=NSMutableArrayarrayWithCapacity:
5;/向数组中添