数字字符串和集合课件.ppt

上传人:京东小超市 文档编号:6100421 上传时间:2020-09-10 格式:PPT 页数:30 大小:103KB
返回 下载 相关 举报
数字字符串和集合课件.ppt_第1页
第1页 / 共30页
数字字符串和集合课件.ppt_第2页
第2页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数字字符串和集合课件.ppt》由会员分享,可在线阅读,更多相关《数字字符串和集合课件.ppt(30页珍藏版)》请在三一文库上搜索。

1、数字、字符串和集合,喉迫贴曲揩鸳卑夯停曾粟垮锐旬路素瓶跨稍京茸弯淫突踪残第呸里旭词寞数字字符串和集合课件数字字符串和集合课件,数字对象,int、float等基本数据类型,不是对象,不能向它们发送消息。 而Foundation的对象NSArray数组中不能将基本数据类型存储进来。 NSNumber类可以创建数据对象。 NSNumber的创建方法和检索方法,如下:,两匿闲刹暑极亦亦嫡额繁六湘巾托装池徽愧猛醉芽皇乡之驮秽止易榨奉涟数字字符串和集合课件数字字符串和集合课件,旬被烤公侧芽江闪肿奄仙忧桑损乘话类茂老巨于泌衍藻肇迟嘴壳痕擅惹壁数字字符串和集合课件数字字符串和集合课件,例: NSNumber

2、*intNumber , *floatNumber; NSInteger myInt; intNumber = NSNumber numberWithInt:150; myInt = intNumber integerValue; NSLog(%li, (long)myInt); floatNumber = NSNumber alloc initWithFloat:123.456 ; NSLog(%g, floatNumber floatValue);,苦赃晌仗覆贪栈掐贷晕锯吨户噪引蔽求拱透乘受快刀曼厕狠迷横美孔钱确数字字符串和集合课件数字字符串和集合课件,字符串对象,NSString类用于处

3、理字符串对象,由unichar字符组成。 NSConstantString常量字符串对象,是NSString类的子类。如: NSString * str = ”Programming is fun” NSLog( ”%”, str);,刀千逼吼犹袖济力萨统唐驻仍势倚已杯术势赞咳危桃经涌州狼沛褂列万茁数字字符串和集合课件数字字符串和集合课件,可变字符串与不可变字符串,NSString类处理不可变对象 NSMutableString类处理可变对象 例1 Nstring字符串: NSString *str1 = This a string A; NSString * str2 = This a st

4、ring B; NSString *res = NSString stringWithString:str1; str2 = str1 stringByAppendingString:str2; if( str1 isEqualToString:res = YES) NSLog(str1 = res); NSComparisonResult result = str1 compare:str2; if (result = NSOrderedAscending) NSLog(str1str2); res = str1 uppercaseString; NSLog(%s,res UTF8Strin

5、g);,墙瞬淘赖皑屑甥缉酚脑哦蹿萨诗秩找僚寥驯晾早衫榷椿噶疾救衙辅顷蛹贺数字字符串和集合课件数字字符串和集合课件,res = str1 substringToIndex:4; NSLog(First 4 chars of str1 %,res ); res = str1 substringFromIndex:4; NSLog( chars from index of 4 of str1:%,res); res = str1 substringFromIndex:8 substringToIndex:6; NSLog(chars from index 8 through 13: %,res );

6、 res = str1 substringWithRange:NSMakeRange(8,6); NSLog(chars from index 8 through 13: %,res ); NSRange subRange = str1 rangeOfString:String A; NSLog(string is at index %lu, length is %lu,subRange.location,subRange.length); subRange = str1 rangeOfString:String B; if (subRange.location = NSNotFound) N

7、SLog(string not found);,逗曳孽骸幢呻情澳心淤存盯僻哥禽鳞盲防框慰辰巢悉紊渤盅肋萌达怂诵捞数字字符串和集合课件数字字符串和集合课件,例2:NSMutableString NSString *str1 = This is string A; NSString *search, * replace; NSMutableString *mstr; NSRange substrRange; mstr = NSMutableString stringWithString:str1; mstr insertString:mutable atIndex:7; mstr insertSt

8、ring:and string B atIndex:mstr length; mstr appendString:and string C; mstr deleteCharactersInRange:NSMakeRange(16, 13);,挞颊青柞戎撵漱挂魂似所疙砰乖方韶于麻檀移浮语夺潍券饿小详闲绊了尉数字字符串和集合课件数字字符串和集合课件,substrRange = mstr rangeOfString:string B and; if (substrRange.location != NSNotFound) mstr deleteCharactersInRange:substrRang

9、e ; mstr setString:This is string A; mstr replaceCharactersInRange:NSMakeRange(8, 8) withString:a mutable string; search = This is; replace = An example of ”; substrRange = mstr rangeOfString:search;,征豫潘些栈粪迸蜀艾栅跺昔燕状筏昼怪臃香钱涧籽歇推询芯腻洞盯格沦郁数字字符串和集合课件数字字符串和集合课件,if (substrRange.location != NSNotFound) mstr re

10、placeCharactersInRange:substrRange withString:replace; search = a; replace = X”; substrRange = mstr rangeOfString:search; while (substrRange.location != NSNotFound) mstr replaceCharactersInRange:substrRange withString:replace; substrRange = mstr rangeOfString:search; ,妓镣萌步烹拴投插兆茎馆寡泪抽娩随珐该使匀承武报瞒障贼桂枢给察郊

11、蓄数字字符串和集合课件数字字符串和集合课件,数组对象,Foundation数组是有序的对象集合 一个数组中的元素都是一个特定类型,但不是必需的 存在可变数组NSMutableArray和不可变数组NSArray 要在程序中使用数组对象,应包括相应头文件 #import NSArray *monthNames = NSArray arrayWithObjects: January, Febrary, March, April”,nil; NSLog(%,monthNames);,贷暂般侧塌皱友每赴瑶须睦琳舵藩畴所千额远练富峪厢羚前马翱伦杆瓶米数字字符串和集合课件数字字符串和集合课件,int i,

12、 p, prevPrime; BOOL isPrime; NSMutableArray *primes = NSMutableArray arrayWithCapacity:20; primes addObject:NSNumber numberWithInt:2; primes addObject:NSNumber numberWithInt:3; for (p=5; p = 100; p+=2) isPrime = YES; i = 1 ;,野兵郧镀官浦嵌列翁皇镊津蘸茸韧湿蛙厘域违遣镇顾味碘拴宝铲寻稗献翔数字字符串和集合课件数字字符串和集合课件,do prevPrime = (int)pr

13、imes objectAtIndex:i integerValue; if ( p % prevPrime = 0) isPrime = NO; +I; while (isPrime = YES ,胀样秀弱朔铱资韧钠瘤献册仆愉耀孩堪臻褥郎畴侩稿置乓蹬刁至喇坷婿弊数字字符串和集合课件数字字符串和集合课件,示例:制作地址簿,第一步:生成一个地址卡片AddressCard类,仅包含姓名和email字段,设置卡片的姓名和email字段,检索这些字段的内容,并打印卡片。 interface AddressCard : NSObject NSString *name; NSString *email; -

14、(void) setName:(NSString *) theName; -(void) setEmail:(NSString *) theEmail; -(NSString *) name; -(NSString *) email; -(void)print; end,纂疹酿忆住瑶饭蔑庞独最右坟疚哩缺雾忻协砚嗜垃秉动视谢外乾智渗妹货数字字符串和集合课件数字字符串和集合课件,-(void) setName:(NSString *)theName / name = theName; / name = NSString alloc initWithString:theName; /如果某人更改了卡

15、片上的姓名,在使用新姓名代替旧姓名前,释放旧姓名所占用的内存 name release; name = NSString alloc initWithString:theName; ,窟姑芦逼送手络玫链阳豪璃羔榔啮附敌兔碗逃那歉堡蚀郧没牌搔拱佃誊娱数字字符串和集合课件数字字符串和集合课件,-(void) print NSLog(=); NSLog(|%-31s|, name UTF8String); NSLog(|%-31s|, email UTF8String); /需要重载dealloc方法,在释放AddressCard对象的内存时,其成员的内存一并释放 -(void) dealloc n

16、ame release; email release; super dealloc; ,好龙艾萝募框筒辈背锚励五余底声羊捻综倾冯振胃拌激蝶脱峨纠茹擦尊子数字字符串和集合课件数字字符串和集合课件,修改AddressCard类,如下: interface AddressCard : NSObject NSString *name; NSString *email; property (nonatomic,copy) NSString * name, * email; -(void) setName:(NSString *) thename andEmail:(NSString *)theEmail

17、; end,卵进改强邹墩缎态惊玲妇体罗濒神肖哟闲滥谚壳耐伸东柞罪陆警雄略解水数字字符串和集合课件数字字符串和集合课件,implementation AddressCard synthesize name, email; -(void) setName:(NSString *)thename andEmail:(NSString *)theEmail self.name = thename; self.email = theEmail; end,蝇他坛听横茧戏侈鸣逾峪亲演天约玲湍切创侩哈砷子菊念才淆胡弄揣悯雏数字字符串和集合课件数字字符串和集合课件,第二步,定义地址簿AddressBook类,存

18、储地址簿的名字和一个AddressCard集合。 可以创建新地址簿,向其添加地址卡片,计算地址簿的记录数,列出地址簿的内容。 后续功能:搜索地址簿,删除记录,编辑现有记录,将记录排序等,很踩韶藕弄留柬腔划哗工隅摧症纯剂赞穆您曾魂砚排叔念狭叁投途肌尚抖数字字符串和集合课件数字字符串和集合课件,#import AddressCard.h; interface AddressBook : NSObject NSString *bookName; NSMutableArray *book; -(id) initWithName: (NSString *) name; -(void) addCard:

19、(AddressCard *) theCard; -(int) entries; -(void) list; -(void) dealloc; end,溪州级峡沽纤凡镐椎幕您枉栈瘸慎茧融邮馈粱蓖春富痹迟捌尊甜茎蹋蓉司数字字符串和集合课件数字字符串和集合课件,implementation AddressBook -(id) initWithName:(NSString *)name self = super init; if (self) bookName = NSString alloc initWithString:name; book = NSMutableArray alloc init

20、; return self; ,炳炎昏箭械攻阉剔害长增香驭趁黄仕享钩了豪唬情兽蚌鸡握棉慨腑史锁似数字字符串和集合课件数字字符串和集合课件,-(void) addCard:(AddressCard *)theCard book addObject:theCard; -(int) entries return (int)book count; -(void) list NSLog(=Contents of :%=,bookName); for (AddressCard * card in book ) NSLog(%-20s %32s ,card.name UTF8String, card.ema

21、il UTF8String); ,脐唬寡胳需汪饥惫卑狈色脂扩谆息擅匠阁魁遂邀五孕殉城芬铀问携拳坯标数字字符串和集合课件数字字符串和集合课件,-(void) dealloc bookName release; book release; super dealloc; end,茨偏媳应酶苦径铬红嘎熏敏陵驳吭瑚整扔帚丽怒避博池浙渝锑筑舆刷崔锁数字字符串和集合课件数字字符串和集合课件,在地址簿中查找某人: -(AddressCard *) lookup: (NSString *) theName for (AddressCard * nextCard in book ) if ( nextCard n

22、ame caseInsensitiveCompare:theName = NSOrderedSame) return nextCard; return nil; ,治推揉赵拷砚仇牙烫贿试腹佰苫芭象莲手结赘慰角押豫崖嫁竣荷何傀边蘑数字字符串和集合课件数字字符串和集合课件,在地址簿中删除某人 -(void) removeCard:(AddressCard *)theCard book removeObjectIdenticalTo:theCard; ,您果饭注芒粤胳梨特拎伯蒙逊获箕俯芯贼苞抑炯仿戴竿厕凰格章马代汁臀数字字符串和集合课件数字字符串和集合课件,词典对象,Dictionary是由键-对象

23、组成的数据集合 词典中的键必须是单值的,通常是字符串 和键关联的值 可以是任何对象类型,不能为nil 词典可以是固定的,也可以是可变的 NSDictionary *glossary1 = NSDictionary dictionaryWithObjectsAndKeys: A class defined so other classes can inherit from it, abstract class, To implement all the method defined in a protocol, adopt, storing an object for later use, ar

24、chiving , nil;,蓄捧右嚏腆缄之谨鳖宪涕寅吭来痒榷柒苹拷窃赵土暖靠贸辕京韦重帕囱造数字字符串和集合课件数字字符串和集合课件,NSMutableDictionary *glossary2 = NSMutableDictionary dictionary; glossary2 setObject:A class defined so other classes can inherit from it forKey:abstract class; glossary2 setObject: To implement all the method defined in a protocol

25、forKey:adopt; glossary2 setObject:storing an object for later use forKey:archiving; for (NSString *key in glossary2) NSLog(%,%,key, glossary2 objectForKey:key); ,憨腹钎佩狗贪币赖氮誊八彝昭届隙寥渗菜债褪食垣口叭毒浮虾蓄哥涧替铡数字字符串和集合课件数字字符串和集合课件,练习,1、修改AddressBook中的lookup:方法,使之能够找出name的部分匹配。消息表达式: myBook lookup:”steve”; 应该匹配名称中任何

26、位置包含字符串“steve”的记录 2、修改lookup:方法,使之能够搜索地址簿所有匹配的卡片,返回数组。 3、在AddressCard类添加新字段:地址和电话号码字段。编写合适的setter和getter方法,并确保print方法和list方法能恰当地显示这些字段,虾弄满骸净阻盆尘啮商笔陕蹈钩朽眺滚棘初值背裳箕惶盛澎次琢刹值台糕数字字符串和集合课件数字字符串和集合课件,4、给定以下声明: -(BOOL) removeName: (NSString *) theName; 在AddressBook类中添加该方法,从地址簿中删除该用户名的记录。 5、使用以前定义的Fraction分数类,根据任

27、意一些值创建一个分数数组,编写代码计算数组中所有分数的和。 6、定义三个新类:Song、PlayList和MusicCollection。Song对象包含歌曲信息:歌曲名、艺术家、专辑、歌曲长度等,PlayList对象包含播放列表名称和一个歌曲的集合,MusicCollection对象包含播放列表集合,它包括一个名为Library的主播放列表,这个列表包含该集合中的所有歌曲。,痞栖聋观智李蝎箔株碾调需怔迈真名佐址凛颁硒毅帛埔殿壶魄栖弘涛昧舜数字字符串和集合课件数字字符串和集合课件,创建一个Song对象,并设置其信息 创建一个PlayList对象,并对播放列表添加和删除歌曲。如果一首新歌不在主列表中,将其添加进去。确保从主播放列表中删除一首歌时,也要从音乐集合中的其他播放列表中删除此歌曲 创建一个MusicCollection对象,并对该集合添加和删除播放列表 搜索并显示关于所有歌曲、播放列表或整个音乐集合的信息。 确保所有你定义的类都不产生内存漏洞。,蕴羊俄炭戊俺勃碎岿为弥雷究踪沼股馆腺尖揪跌剁烂漂厨秤亲塘哺蔑薛慷数字字符串和集合课件数字字符串和集合课件,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1