




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)字字符串和集合課件數(shù)字字符串和集合課件數(shù)字字符串和集合課件數(shù)字、字符串和集合數(shù)字對(duì)象int、float等基本數(shù)據(jù)類(lèi)型,不是對(duì)象,不能向它們發(fā)送消息。而Foundation的對(duì)象NSArray數(shù)組中不能將基本數(shù)據(jù)類(lèi)型存儲(chǔ)進(jìn)來(lái)。NSNumber類(lèi)可以創(chuàng)建數(shù)據(jù)對(duì)象。NSNumber的創(chuàng)建方法和檢索方法,如下:字符串對(duì)象NSString類(lèi)用于處理字符串對(duì)象,由unichar字符組成。NSConstantString常量字符串對(duì)象,是NSString類(lèi)的子類(lèi)。如:NSString*str=”P(pán)rogrammingisfun”NSLog(”%”,str);可變字符串與不可變字符串NSString類(lèi)處理不可變對(duì)象NSMutableString類(lèi)處理可變對(duì)象例1Nstring字符串:NSString*str1="ThisastringA";NSString*str2="ThisastringB";NSString*res=[NSStringstringWithString:str1];str2=[str1stringByAppendingString:str2];if([str1isEqualToString:res]==YES)NSLog("str1==res");NSComparisonResultresult=[str1compare:str2];if(result==NSOrderedAscending){NSLog("str1<str2");}elseif(result==NSOrderedDescending){NSLog("str1>str2");}res=[str1uppercaseString];NSLog("%s",[resUTF8String]);
res=[str1substringToIndex:4];NSLog("First4charsofstr1%",res);res=[str1substringFromIndex:4];NSLog("charsfromindexof4ofstr1:%",res);res=[[str1substringFromIndex:8]substringToIndex:6];NSLog("charsfromindex8through13:%",res);res=[str1substringWithRange:NSMakeRange(8,6)];NSLog("charsfromindex8through13:%",res);NSRangesubRange=[str1rangeOfString:"StringA"];NSLog("stringisatindex%lu,lengthis%lu",subRange.location,subRange.length);subRange=[str1rangeOfString:"StringB"];if(subRange.location==NSNotFound){NSLog("stringnotfound");
例2:NSMutableStringNSString*str1="ThisisstringA";NSString*search,*replace;NSMutableString*mstr;NSRangesubstrRange;mstr=[NSMutableStringstringWithString:str1];[mstrinsertString:"mutable"atIndex:7];[mstrinsertString:"andstringB"atIndex:[mstrlength]];[mstrappendString:"andstringC"];[mstrdeleteCharactersInRange:NSMakeRange(16,13)];
substrRange=[mstrrangeOfString:"stringBand"];if(substrRange.location!=NSNotFound){[mstrdeleteCharactersInRange:substrRange];}[mstrsetString:"ThisisstringA"];[mstrreplaceCharactersInRange:NSMakeRange(8,8)withString:"amutablestring"];search="Thisis";replace="Anexampleof”;substrRange=[mstrrangeOfString:search];
if(substrRange.location!=NSNotFound){[mstrreplaceCharactersInRange:substrRangewithString:replace];}search="a";replace="X”;substrRange=[mstrrangeOfString:search];while(substrRange.location!=NSNotFound){[mstrreplaceCharactersInRange:substrRangewithString:replace];substrRange=[mstrrangeOfString:search];}數(shù)組對(duì)象Foundation數(shù)組是有序的對(duì)象集合一個(gè)數(shù)組中的元素都是一個(gè)特定類(lèi)型,但不是必需的存在可變數(shù)組NSMutableArray和不可變數(shù)組NSArray要在程序中使用數(shù)組對(duì)象,應(yīng)包括相應(yīng)頭文件#import<Foundation/NSArray.h>NSArray*monthNames=[NSArrayarrayWithObjects:"January","Febrary","March","April”,nil]; NSLog("%",monthNames);
inti,p,prevPrime;BOOLisPrime;NSMutableArray*primes=[NSMutableArrayarrayWithCapacity:20];[primesaddObject:[NSNumbernumberWithInt:2]];[primesaddObject:[NSNumbernumberWithInt:3]];for(p=5;p<=100;p+=2){isPrime=YES;i=1;
do{prevPrime=(int)[[primesobjectAtIndex:i]integerValue];if(p%prevPrime==0){isPrime=NO;}++I;}while(isPrime==YES&&p/prevPrime>=prevPrime);if(isPrime){[primesaddObject:[NSNumbernumberWithInt:p]];}}
示例:制作地址簿第一步:生成一個(gè)地址卡片AddressCard類(lèi),僅包含姓名和email字段,設(shè)置卡片的姓名和email字段,檢索這些字段的內(nèi)容,并打印卡片。interfaceAddressCard:NSObject{NSString*name;NSString*email;}-(void)setName:(NSString*)theName;-(void)setEmail:(NSString*)theEmail;-(NSString*)name;-(NSString*)email;-(void)print;end
-(void)setName:(NSString*)theName{//name=theName;//name=[[NSStringalloc]initWithString:theName];
//如果某人更改了卡片上的姓名,在使用新姓名代替舊姓名前,釋放舊姓名所占用的內(nèi)存[namerelease];name=[[NSStringalloc]initWithString:theName];}
-(void)print{NSLog("=========================");NSLog("|%-31s|",[nameUTF8String]);NSLog("|%-31s|",[emailUTF8String]);}//需要重載dealloc方法,在釋放AddressCard對(duì)象的內(nèi)存時(shí),其成員的內(nèi)存一并釋放-(void)dealloc{[namerelease];[emailrelease];[superdealloc];}
修改AddressCard類(lèi),如下:interfaceAddressCard:NSObject{NSString*name;NSString*email;}property(nonatomic,copy)NSString*name,*email;-(void)setName:(NSString*)thenameandEmail:(NSString*)theEmail;end
implementationAddressCardsynthesizename,email;-(void)setName:(NSString*)thenameandEmail:(NSString*)theEmail{=thename;self.email=theEmail;}end
第二步,定義地址簿AddressBook類(lèi),存儲(chǔ)地址簿的名字和一個(gè)AddressCard集合??梢詣?chuàng)建新地址簿,向其添加地址卡片,計(jì)算地址簿的記錄數(shù),列出地址簿的內(nèi)容。后續(xù)功能:搜索地址簿,刪除記錄,編輯現(xiàn)有記錄,將記錄排序等
#import"AddressCard.h";interfaceAddressBook:NSObject{NSString*bookName;NSMutableArray*book;}-(id)initWithName:(NSString*)name;-(void)addCard:(AddressCard*)theCard;-(int)entries;-(void)list;-(void)dealloc;end
implementationAddressBook-(id)initWithName:(NSString*)name{self=[superinit];if(self){bookName=[[NSStringalloc]initWithString:name];book=[[NSMutableArrayalloc]init];}returnself;}
-(void)addCard:(AddressCard*)theCard{[bookaddObject:theCard];}-(int)entries{return(int)[bookcount];}-(void)list{NSLog("=======Contentsof:%=======",bookName);for(AddressCard*cardinbook){NSLog("%-20s%32s",[UTF8String],[card.emailUTF8String]);}}
-(void)dealloc{[bookNamerelease];[bookrelease];[superdealloc];}end
在地址簿中查找某人:-(AddressCard*)lookup:(NSString*)theName{for(AddressCard*nextCardinbook){if([[nextCardname]caseInsensitiveCompare:theName]==NSOrderedSame){returnnextCard;}}returnnil;}
在地址簿中刪除某人-(void)removeCard:(AddressCard*)theCard{[bookremoveObjectIdenticalTo:theCard];}詞典對(duì)象Dictionary是由鍵-對(duì)象組成的數(shù)據(jù)集合詞典中的鍵必須是單值的,通常是字符串和鍵關(guān)聯(lián)的值
可以是任何對(duì)象類(lèi)型,不能為nil詞典可以是固定的,也可以是可變的NSDictionary*glossary1=[NSDictionarydictionaryWithObjectsAndKeys:"Aclassdefinedsootherclassescaninheritfromit","abstractclass","Toimplementallthemethoddefinedinaprotocol","adopt","storinganobjectforlateruse","archiving",nil];
NSMutableDictionary*glossary2=[NSMutableDictionarydictionary];[glossary2setObject:"Aclassdefinedsootherclassescaninheritfromit"forKey:"abstractclass"];[glossary2setObject:"Toimplementallthemethoddefinedinaprotocol"forKey:"adopt"];[glossary2setObject:"storinganobjectforlateruse"forKey:"archiving"];for(NSString*keyinglossary2){NSLog("%,%",key,[glossary2objectForKey:key]);}練習(xí)1、修改AddressBook中的lookup:方法,使之能夠找出name的部分匹配。消息表達(dá)式:[myBookl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西職業(yè)技術(shù)學(xué)院《影視特效》2023-2024學(xué)年第一學(xué)期期末試卷
- 錦州市黑山縣2024-2025學(xué)年三年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 南開(kāi)大學(xué)《試驗(yàn)設(shè)計(jì)與數(shù)據(jù)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西電力職業(yè)技術(shù)學(xué)院《電視攝像基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 黔南民族醫(yī)學(xué)高等專(zhuān)科學(xué)?!渡锎蠓肿与p語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 工程資金計(jì)劃表模板范文
- 精油美容儀問(wèn)卷調(diào)查
- 激光投影施工方案范本
- 管道盲探施工方案
- 山西定向穿越施工方案
- 電復(fù)律的護(hù)理查房
- 2024年貴州現(xiàn)代物流產(chǎn)業(yè)集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 20222023八下語(yǔ)文提優(yōu)輔導(dǎo)02(教師+學(xué)生)
- 共和國(guó)史(自己整理-僅供參考)
- 視頻監(jiān)控維保項(xiàng)目投標(biāo)方案(技術(shù)標(biāo))
- NB-T 11076-2023 高壓交流故障電流限制器通用技術(shù)規(guī)范
- 整縣(市、區(qū))屋頂分布式光伏開(kāi)發(fā)方案書(shū)-V5
- 透水磚鋪裝施工方案
- 《十步訊問(wèn)法》讀書(shū)筆記
- GB/T 42599-2023風(fēng)能發(fā)電系統(tǒng)電氣仿真模型驗(yàn)證
- 質(zhì)量問(wèn)題解決方法之7鉆流程法
評(píng)論
0/150
提交評(píng)論