




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数字、字符串和集合数字对象 int、float等根本数据类型,不是对象,不能向它们发送音讯。而Foundation的对象NSArray数组中不能将根本数据类型存储进来。NSNumber类可以创建数据对象。NSNumber的创建方法和检索方法,如下: 创建和初始化类方法创建和初始化类方法初始化实例方法初始化实例方法检索实例方法检索实例方法numberWithChar:initWithChar:charValuenumberWithUnsignedChar:initWithUnsignedChar:unsignedCharValuenumberWithShort:initWithShort:sh
2、ortValuenumberWithInteger:initWithInteger:integerValuenumberWithInt:initWithInt:intValuenumberWithUnsignedInt:initWithUnsignedInt:unsignedIntValuenumberWithLong:initWithLong:longValuenumberWithFloat:initWithFloat:floatValuenumberWithDouble:initWithDouble:doubleValuenumberWithBool:initWithBool:boolVa
3、lue 例: NSNumber *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类用于处置字符串对象,由unichar字符组成。NSConstantString常量字
4、符串对象,是NSString类的子类。如:NSString * str = Programming is funNSLog( %, str);可变字符串与不可变字符串NSString类处置不可变对象NSMutableString类处置可变对象例1 Nstring字符串:NSString *str1 = This a string A; NSString * str2 = This a string B; NSString *res = NSString stringWithString:str1; str2 = str1 stringByAppendingString:str2; if( st
5、r1 isEqualToString:res = YES) NSLog(str1 = res); NSComparisonResult result = str1 compare:str2; if (result = NSOrderedAscending) NSLog(str1str2); res = str1 uppercaseString; NSLog(%s,res UTF8String); res = str1 substringToIndex:4; NSLog(First 4 chars of str1 %,res ); res = str1 substringFromIndex:4;
6、 NSLog( chars from index of 4 of str1:%,res); res = str1 substringFromIndex:8 substringToIndex:6; NSLog(chars from index 8 through 13: %,res ); res = str1 substringWithRange:NSMakeRange(8,6); NSLog(chars from index 8 through 13: %,res ); NSRange subRange = str1 rangeOfString:String A; NSLog(string i
7、s at index %lu, length is %lu,subRange.location,subRange.length); subRange = str1 rangeOfString:String B; if (subRange.location = NSNotFound) NSLog(string not found); 例2:NSMutableString NSString *str1 = This is string A; NSString *search, * replace; NSMutableString *mstr; NSRange substrRange; mstr =
8、 NSMutableString stringWithString:str1; mstr insertString:mutable atIndex:7; mstr insertString: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) ms
9、tr deleteCharactersInRange:substrRange ; 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 replaceCharactersInRa
10、nge:substrRange withString:replace; search = a; replace = X; substrRange = mstr rangeOfString:search; while (substrRange.location != NSNotFound) mstr replaceCharactersInRange:substrRange withString:replace; substrRange = mstr rangeOfString:search;数组对象Foundation数组是有序的对象集合一个数组中的元素都是一个特定类型,但不是必需的存在可变数组
11、NSMutableArray和不可变数组NSArray要在程序中运用数组对象,应包括相应头文件#import NSArray *monthNames = NSArray arrayWithObjects: January, Febrary, March, April,nil; NSLog(%,monthNames); int i, p, prevPrime; BOOL isPrime; NSMutableArray *primes = NSMutableArray arrayWithCapacity:20; primes addObject:NSNumber numberWithInt:2;
12、primes addObject:NSNumber numberWithInt:3; for (p=5; p = prevPrime); if (isPrime) primes addObject:NSNumber numberWithInt:p; 例如:制造地址簿第一步:生成一个地址卡片AddressCard类,仅包含姓名和email字段,设置卡片的姓名和email字段,检索这些字段的内容,并打印卡片。interface AddressCard : NSObject NSString *name; NSString *;-(void) setName:(NSString *) theName
13、;-(void) setEmail:(NSString *) theEmail;-(NSString *) name;-(NSString *) ;-(void)print;end -(void) setName:(NSString *)theName/ name = theName;/ name = NSString alloc initWithString:theName; /假设某人更改了卡片上的姓名,在运用新姓名替代旧姓名前,释放旧姓名所占用的内存 name release; name = NSString alloc initWithString:theName; -(void) p
14、rint NSLog(=); NSLog(|%-31s|, name UTF8String); NSLog(|%-31s|, UTF8String); /需求重载dealloc方法,在释放AddressCard对象的内存时,其成员的内存一并释放-(void) dealloc name release; release; super dealloc; 修正AddressCard类,如下:interface AddressCard : NSObject NSString *name; NSString *;property (nonatomic,copy) NSString * name, * ;
15、-(void) setName:(NSString *) thename andEmail:(NSString *)theEmail;end implementation AddressCardsynthesize name, ;-(void) setName:(NSString *)thename andEmail:(NSString *)theEmail = thename; self. = theEmail;end 第二步,定义地址簿AddressBook类,存储地址簿的名字和一个AddressCard集合。可以创建新地址簿,向其添加地址卡片,计算地址簿的记录数,列出
16、地址簿的内容。后续功能:搜索地址簿,删除记录,编辑现有记录,将记录排序等 #import AddressCard.h;interface AddressBook : NSObject NSString *bookName; NSMutableArray *book;-(id) initWithName: (NSString *) name;-(void) addCard: (AddressCard *) theCard;-(int) entries;-(void) list;-(void) dealloc;end implementation AddressBook-(id) initWith
17、Name:(NSString *)name self = super init; if (self) bookName = NSString alloc initWithString:name; book = NSMutableArray alloc init; return self; -(void) addCard:(AddressCard *)theCard book addObject:theCard; -(int) entries return (int)book count; -(void) list NSLog(=Contents of :%=,bookName); for (A
18、ddressCard * card in book ) NSLog(%-20s %32s , UTF8String, card. UTF8String); -(void) dealloc bookName release; book release; super dealloc;end 在地址簿中查找某人:-(AddressCard *) lookup: (NSString *) theName for (AddressCard * nextCard in book ) if ( nextCard name caseInsensitiveCompare:theName = N
19、SOrderedSame) return nextCard; return nil; 在地址簿中删除某人-(void) removeCard:(AddressCard *)theCard book removeObjectIdenticalTo:theCard; 词典对象Dictionary是由键-对象组成的数据集合词典中的键必需是单值的,通常是字符串和键关联的值 可以是任何对象类型,不能为nil词典可以是固定的,也可以是可变的 NSDictionary *glossary1 = NSDictionary dictionaryWithObjectsAndKeys: A class define
20、d 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, archiving , 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 forKey:adopt; glossary2 setObject:storing an object for later use forKey:archiving; for (NSString *key in glossary2) NSLog(%,%,key, glossary2 objectForKey:key)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省成都市双流中学2023-2024学年高三上学期10月月考生物试题 含解析
- 《国际贸易操作流程》课件
- 检查合同协议书
- 文员就业合同协议书
- 合伙经营投资合同协议书
- 乳酸菌经销合同协议书
- 保洁协议书合同
- 合同协议书与合同 区别
- 两人合作回扣协议书合同
- 试岗合同协议书
- 《现代西方女性主义》课件
- 2025年四川省成都市青羊区中考二诊化学试题(原卷版+解析版)
- 2024年南京市建邺区平安联盟工作辅助人员招聘笔试真题
- 2025至2030中国核燃料加工行业竞争趋势及发展前景可持续报告
- 山西省部分重点中学2024-2025学年高三4月模拟检测语文试题(含答案)
- 2024年生物医学工程试题及答案
- 2025年全国防灾减灾日(5.12)应知应会知识测试竞赛题库与答案
- 六年级家长会心理教育专题课件
- 四川宜宾环球集团有限公司招聘笔试题库2025
- 如何设计高质量的课件:制作教学指南
- 2025年农村商业银行人员招聘考试笔试试题(含答案)
评论
0/150
提交评论