收藏 分销(赏)

Foundation框架3教学提纲.ppt

上传人:精**** 文档编号:8863862 上传时间:2025-03-05 格式:PPT 页数:30 大小:155KB
下载 相关 举报
Foundation框架3教学提纲.ppt_第1页
第1页 / 共30页
Foundation框架3教学提纲.ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Foundation框架3,约定速成的命名规则,类名首字母大写,变量名和方法名首字母小写,使用驼峰标志,1 认识Foundation框架,框架是有许多类、方法、函数以及文档按照一定的规则组织起来的集合,以便于程序员更加方便、迅速的开发程序。,cocoa程序编写主要用到2个框架Foundation和ApplicationKit(UIKit)。其中Foundation框架主要定义了一些基础类,供程序员来使用,而Application Kit主要是一些用户界面设计的类,用于Mac开发使用此库。Foundation框架中的所有类都继承自NSObject这个对象。,作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,以及一些其他的与图像用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源,NextSTEP。它可以在Mac OX X和iOS中使用。,2、数字对象的常用处理方法,在之前的学习中,我们已经学习了基本数据类型。但这些都是基本数据类型,它们不是对象,因此,不能向它们发送消息。然而有时也需要将他们当做对象来处理。比如,我们需要把基本类型放入集合中(在cocoa中集合只能存放对象,无法存放基本数据类型),那么这时我们需要将基本类型转换为数字对象。OC中提供了数字对象“NSNumber”可以将基本数据类型“包装”成对象,这样我们就可以将数据类型来处理了。,数字对象的初始化,/类方法创建数字对象,int number=10;,NSNumber*intNumber=NSNumber numberWithInt:number;,BOOL isBool=YES;,NSNumber*boolNumber=NSNumber numberWithBool:isBool;,数字对象创建与转换,数字对象的转化,/实例方法创建数字对象,float pi=3.14;,NSNumber*piNumber=NSNumber alloc initWithFloat:pi;,char character=a;,NSNumber*cNumber=NSNumber alloc initWithChar:character;,/还原成基本数据类型,int month=intNumber intValue;,BOOL isOpen=boolNumber boolValue;,float length=piNumber floatValue;,char firstName=cNumber charValue;,(看代码FoundationDemo1),3、字符串的基本概念和常用处理方法,在Foundation框架中,提供了NSString类,用于处理字符串对象。在C语言中字符串在一对引号中表示。OC是C语言的一种延展,换句话说,OC语言是建立在C语言的基础上的(C的基础上添加了面向对象的内容,smalltalk语言)。因此,为了区别两者的字符串,OC语言的字符串必须以开头,引号当中则是字符串的内容,如“abc”。此外,NSString对象,一旦被创建,就不可以更改。如若需要一个可以更改的字符串对象,需要创建NSMutableString实例。,字符串对象的创建,字符串的创建,创建一个字符串,创建一个空的字符串,快速创建一个字符串,NSString*string=这是一个字符串常量;,NSString*string1=NSString alloc init;,NSString*string2=NSString string;,NSString*string=NSString alloc initWithString:快速创建字符串;,NSString*string=NSString stringWithString:快速创建一个字符串;,比较字符串对象,int number=2;,NSString*string=NSString alloc initWithFormat:%d,numnber;,快速创建一个格式化字符串,float number=2.4;,NSString*string=NSString stringWithFormat:浮点数%f,number;,比较字符串,测试字符串内容是否相同,NSString*string1=NSString alloc initWithFormat:test;,NSString*string2=NSString alloc initWithFormat:test;,if(string1 isEqualToString:string2),NSLog(测试连个字符串是否相等);,比较字符串对象,测试字符串是否为同一个对象,比较字符串的大小,求字符串的长度,NSString*string1=NSString alloc initWithFormat:test;,NSString*string2=NSString alloc initWithFormat:test;,if(string1=string2),NSLog(测试两个字符串是否为同一个对象);,NSString*string1=NSString alloc initWithFormat:a;,NSString*string2=NSString alloc initWithFormat:b;,NSLog(string1 caseInsensitiveCompare:string2:%ld,string1 caseInsensitiveCompare:string2);,字符串对象的转换,NSString*string1=NSString alloc initWithFormat:string length;,NSUInteger*length=string1 length;,字符串的转换,改变字符串大小写,NSString*hello=hello WORLD;,NSLog(“%”,hello uppercaseString);/全部大写,NSLog(%,hello lowercaseString);/全部小写,NSLog(%,hello capitalizedString);/首字母大写,其他字母小写,将字符串转换成基本数据类型,NSString*string=2.467;,NSLog(%d,string boolValue);/转换成BOOL类型,NSLog(%f,string floatValue);/转换成浮点型,NSLog(%f,string doubleValue);/转换成双精度型,NSLog(%d,string intValue);/转换成整型,截取字符串对象,NSString*string=One Two Three Four;,NSArray*array=string componentsSeparatedByString:;,将字符串转换为数组,字符串的截取与拼接,截取字符串,NSString*string=NSString alloc initWithFormat:abcdef;,/从字符串的开头一直截取到指定的位置,但不包括该位置的字符,NSString*string1=string substringToIndex:2;,/以指定位置开始(包括指定位置的字符),并包括之后的全部字符,NSString*string2=string substringFromIndex:2;,拼接字符串对象,截取字符串,NSRange rang;,rang.location=2;,rang.length=2;,NSString*string3=string substringWithRange:rang;,NSString*str1=1,*str2=2;,NSString*string=NSString alloc initWithFormat:这时拼接:%and%,str1,str2;,NSString*string1=str1 stringByAppendingFormat:%,str2;,NSString*string2=str1 stringByAppendingString:str2;,查询字符串,查询字符串对象,NSString*link=asdastarget=_blankddasd;,NSRange range=link rangeOfString:target=_blank;,if(range.location!=NSNotFound),NSLog(string 找到了);,可变字符串对象,可变字符串-NSMutableString,它继承自NSString,插入字符串,删除字符串,替换字符串,NSMutableString*str=NSMutableString stringWithString:字符串;,str insertString:可变 atIndex:0;,NSMutableString*str=NSMutableString stringWithString:字符串;,str deleteCharactersInRange:NSMakeRange(1,2);,NSMutableString*str=NSMutableString stringWithString:字符串;,str replaceCharactersInRange:NSMakeRange(0,2)withString:羊肉;,4、集合-数组的概念和常用方法,数组的基本概念,Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合,通过索引下标取到数组中的各个元素。与字符串相同,数组也有可变和不可变数组之分。此外,数组中不可以存放基本数据类型,只能存放类的实例(对象)。如若需要将基本数据类型、结构体放入数组中,需要通过NSNumber、NSValue进行数据的“封装”;,不可变数组-NSArray,数组的初始化,NSArray*firstArray=NSArray arrayWithObject:one;,/多个元素初始化时,注意nil作为数组的结束,NSArray*secondArray=NSArray arrayWithObjects:one,two,nil;,NSArray*thirdArray=NSArray arrayWithArray:secondArray;,NSArray*FourArray=NSArray arrayWithContentsOfFile:path;,数组的常用方法,常用方法,NSArray*array=NSArray arrayWithObjects:a,b,c,nil;,/获取数组中的元素个数,NSInteger count=array count;,/根据下标访问对象,NSString*firstObj=array objectAtIndex:0;,/在原来的数组上追加对象,返回一个新的数组对象,NSArray*addArray=array arrayByAddingObject:ddd;,/用指定的字符串将数组中的元素连接起来,NSString*arrayStr=array componentsJoinedByString:,;,/数组中是否包含某对象,BOOL isContain=array containsObject:bbb;,/查询指定对象在数组中的元素,如果没此元素,返回NSNotFound,NSInteger index=array indexOfObject:ccc;,/获取数组中最后一个元素,NSString*lastString=array lastObject;,可变数组的常用方法,可变数组-NSMutableArray,它继承自NSArray,常用方法,/初始化,设定元素个数为5,但可以更改,NSMutableArray*mutableArray=NSMutableArray arrayWithCapacity:5;,/向数组中添加一个元素,mutableArray addObject:aaa;,/向数组中指定下标插入元素,mutableArray insertObject:ccc atIndex:0;,/移除指定元素,mutableArray removeObject:aaa;,/移除指定下标的元素,mutableArray removeObjectAtIndex:0;,/向数组中添加数组,mutableArray addObjectsFromArray:array;,遍历数组,遍历数组,遍历数组常规方法,NSArray*array=NSArray arrayWithObjects:a,b,z,nil;,int length=array count;,for(int i=0;i length;i+),NSString*element=array objectAtIndex:i;,NSLog(%,element);,/遍历的性能较低,/替换指定的下标元素,mutableArray replaceObjectAtIndex:0 withObject:replace;,/移除所有对象,mutableArray removeAllObjects;,快速枚举,遍历数组,for(NSString*string in array),NSLog(found%,string);,/遍历的性能高,for(id string in array),NSLog(found%,string);,/当不确定数组的元素的类型时,可以选择用id,4、集合-字典的概念和常用方法,遍历数组,Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合。正如,我们在字典里查找单词的定义一样。通过key(键),查找对象value(值),key通常是字符串对象,也可以是其他任意类型对象。在一个字典对象中,key的值是唯一的。此外,字典对象的键和值不可以为空(nil),如果需要在一个字典对象中表示一个空值,可以使用NSNull对象。,不可变字典-NSDictionary,字典的初始化,字典的初始化方法,常用方法,NSNumber*numObj=NSNumber numberWithInt:100;,/以一个元素初始化,NSDictionary*dic=NSDictionary dictionaryWithObject:numObj forKey:key;,/初始化两个元素,NSDictionary*dic=NSDictionary dictionaryWithObjectsAndKeys:numObj,valueKey,numObj2,valueKey2,nil;,/初始化新字典,新字典包含 otherDic,NSDictionary*dic=NSDictionary dictionaryWithDictionary:otherDic;,/以文件内容初始化字典,NSDictionary*dic=NSDictionary dictionaryWithContentsOfFile:path;,字典的常用方法,可变字典-NSMutableDictionary继承自NSDictionary,常用方法,/获取字典数量,NSInteger count=dic count;,/通过key获取对应的value对象,NSObject*valueObj=dic objectForKey:key;,/将字典的key转成一个枚举对象,用于遍历,NSEnumerator*enumerator=dic keyEnumerator;,/获取所有键的集合,NSArray*keys=dic allKeys;,/获取所有值的集合,NSArray*values=dic allValues;,可变字典的常用方法,/初始化一个空的可变字典(注意以下代码前后无关联性),NSMutableDictionary*dic2=NSMutableDictionary dictionaryWithObjectsAndKeys:v1,key1,v2,key2,nil;,NSDictionary*dic3=NSDictionary dictionaryWithObject:“v3”forKey:key3;,/向字典2对象中添加整个字典对象3,dic2 addEntriesFromDictionary:dic3;,/向字典2对象中追加一个新的key3和value3,dic2 setValue:value3 forKey:key3;,/初始化一个空的可变字典,NSMutableDictionary*dic1=NSMutableDictionary dictionary;,/将空字典1对象的内容设置为字典2对象相同,dic1 setDictionary:dic2;,dic1 removeObjectForKey:key1;/将字典中key1对应的值删除,NSArray*array=NSArray arrayWithOjbects:key1,nil;,dic2 removeObjectsForKeys:array;/根据制定的数组(key)移除字典2的内容,dic1 removeAllObjects;/移除字典所有对象,遍历字典,遍历字典,快速枚举,一般的枚举,通过枚举类型枚举,for(id key in dic),id obj=dic objectForKey:key;,NSLog(%,obj);,NSArray*keys=dic allKeys;,int length=keys count;,for(int i=0;i length;i+),id key=keys objectAtIndex:i;,id obj=dic objectForKey:key;,NSLog(%,obj);,遍历字典,NSEnumerator*enumerator=dic keyEnumerator;,id key=enumerator nextObject;,while(key),id obj=dic objectForKey:key;,NSLog(%,obj);,key=enumerator nextObject;,4、集合-集合概念和常用方法,集合的基本概念,在Foundation框架中,提供了NSSet类,它是一组单值对象的集合,且NSSet实例中元素是无序,同一个对象只能保存一个,并且它也分为可变和不可变对象(可变集合对象,NSMutableSet)。,不可变集合-NSSet,NSSet的初始化,/类似与数组的构建,直接创建一个集合,NSSet*set1=NSSet alloc initWithObjects:one,two,nil;,/通过数组的构建集合,NSArray*array=NSArray arrayWithObjects:1,2,3,nil;,NSSet*set2=NSSet alloc initWithArray:array;,/通过已有集合构建集合,NSSet*set3=NSSet alloc initWithSet:set2;,集合的常用方法,NSSet的常用方法(BOOL),/集合3中对象的个数,int count=set3 count;,/以数组的形式返回集合3中所有的对象,NSArray*allObjects=set3 allObjects;,/返回集合3中的任意一个对象,id object=set3 anyObject;,/集合4中是否包含内容为2的字符串对象,如果包含返回YES,否则返回NO,BOOL isContain=set4 containsObject:2;,/集合4中与集合2中是否存在有相同元素的对象,如果有返回YES,否则为NO,BOOL isIntersect=set4 intersectsSet:set2;,/集合4与集合5的元素是否完全匹配,如果匹配返回YES,否则为NO,BOOL isEqual=set4 isEqualToSet:set5;,/集合4是否是集合5的子集合,如果是返回YES,否则为NO,BOOL isSubset=set4 isSubsetOfSet:set5;,集合的常用方法,可变集合-NSMutableSet,它继承自NSSet,常用方法,/创建一个新的集合2,集合2有两个对象(a和b),NSSet*set1=NSSet setWithObjects:a,nil;,NSSet*set2=set1 setByAddingObject:b;,/通过已有集合7和集合8,创建一个新的集合9,NSSet*set7=NSSet setWithObjects:a,nil;,NSSet*set8=NSSet setWithObjects:z,nil;,NSSet*set9=set7 setByAddingObjectsFromSet:set8;,/通过已有的集合10和数组对象,创建一个新的集合11,NSArray*array=NSArray arrayWithObjects:a,b,c,nil;,NSSet*set10=NSSet setWithObjects:z,nil;,NSSet*set11=set10 setByAddinObjectsFromArray:array;,可变集合的常用方法,/创建一个空的集合(注意以下代码前后无关联性),NSMutableSet*set1=NSMutableSet set;,NSMutableSet*set2=NSMutableSet setWithObjects:1,2,nil;,NSMutableSet*set3=NSMutableSet setWithObjects:a,2,nil;,/集合2“减去”集合3中的元素,集合2最后元素只有1,且为1,set2 minusSet:set3;,/集合2与集合3中的元素的交集,集合2最后元素只有1个,且为2,set2 intersectSet:set3;,/集合2与集合3中的元素的并集,集合2最后元素只有3个,且为1,2,a,set2 unionSet:set3;,/将空集合1设置为集合3中的内容,set1 setSet:set3;,/根据数组的内容删除集合中的对象,set2 addObjectsFromArray:array;,set2 removeObject:1;,set2 removeAllObjects;,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服