已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Object-c 中的数据类型导航:基本类型ID对象类型常见的有对象类型-NSLog-NSNumber-NSString和NSMutableString-NSArray和NSMutableArray-NSSet和NSMutableSet-NSDictionary和NSMutableDictionary基本类型:Objective-C中的基本类型和C语言中的基本类型一样.主要有:int,long,float,double,char,void, bool等.在Foundation中,也为些数据定义了别名,如:NSInteger为long,CGFloat为double,BOOL等.Objective-C也可以用C语言的构造类型,如数组、结构体、同用体等。对于基本类型变量,不需要用指针,也不用手动回收,方法执行结束会自动回收。ID:在object-c中,对象标识被作为一个特殊的数据类型:id。这个数据类型定义为引用对象的指针。实际上是指向对象实例变量的指针。对象类型常见的有:NSlogNSStringNSIntegerNSURLNSImageNSNumberNSLog格式如下%对象%d,%i整数%u无符整形%f浮点/双字%x,%X二进制整数%zu size_t %p指针%e浮点/双字%g浮点/双字%s C字符串%*s Pascal字符串%c 字符%C unicha%lld 64位长整数(long long)%llu无符64位长整数%Lf 64位双字NSNumberNSNumber是Objective-c的数字对象。需求考虑内存释放问题。1 NSNumber *number = NSNumber numberWithInt:123;2 NSLog(%i,number intValue);3 NSLog(%i,number retainCount);/输出2010-12-29 16:02:35.040 HelloWorld4710:a0f 1232010-12-29 16:02:35.042 HelloWorld4710:a0f 1NSString和NSMutableStringNSString是不可变字符串(NSContantString),其变量和其本类型一样不需要手动释放(它的retainCount为-1)。NSString赋值:NSString*str1=str.;/(不需要手动释放) NSString*str2=NSStringallocinitWithString:str.;/不需要手动释放因为对NSString赋值,会产生成的对象,所在方法中用NSString作临时对象,也要考虑内存开消问题。NSMutableString是可变字符串,若用 “NSMutableStringallocinit.”方法初始化,需要考虑手动释放。1NSString*str=thisisstr.; 2NSMutableString*mstr=NSMutableStringstringWithString:str; 3str=sss; 4NSLog(%,mstr); 5NSLog(%,str);输出:1thisisstr. 2sss注:因为NSMutableString是NSString的子类,实际应用中很可以把NSMutableString变量赋给NSString。所以若用NSString做类的属性,也会用手动释放的方式:1/接口文件 2interfaceTestProperty:NSObject 3NSString*name; 4NSIntegermyInt; 5 6 7property(copy,nonatomic)NSString*name; 8propertyNSIntegermyInt; 9 10end1/实现类 2implementationTestProperty 3synthesizename; 4synthesizemyInt; 5 6-(void)dealloc 7=nil; 8superdealloc; 9 10 11end例:代码1intmain(intargc,constchar*argv) 2NSAutoreleasePool*pool=NSAutoreleasePoolallocinit; 3 4NSMutableString*str1=NSMutableStringstringWithString:thisisstr; 5NSMutableString*str2=NSMutableStringstringWithString:str1; 6str2appendString:sss; 7NSLog(%,str1); 8NSLog(%,str2); 9pooldrain; 10return0; 11 12 13/输出 142010-12-3011:43:13.511HelloWorld2119:a0fthisisstr 152010-12-3011:43:13.521HelloWorld2119:a0fthisisstrsss 16 17可以看出str2不是指向str1的,而是新的对象!NSArray和NSMutableArrayNSArray是不可变数组,一般用于保存固定数据。和NSString不同的是,NSArray有retainCount,所以释放问题。NSMubleArray是变数组,可以直接对其值进行操作。也可考虑释放问题。NSMubleArray是NSArray的子类。1NSArray*arr=NSArrayarrayWithObjects:Sep,Januay,nil; 2NSArray*arr_=arrsortedArrayUsingSelector:selector(compare:); 3NSLog(%i,arrretainCount); 4for(NSString*nameinarr_) 5NSLog(%,name); 6 7 8/输出 92010-12-2913:36:16.830HelloWorld3325:a0f1 102010-12-2913:36:16.833HelloWorld3325:a0fJanuay 112010-12-2913:36:16.833HelloWorld3325:a0fSep代码1NSMutableArray*arr=NSMutableArrayarrayWithObjects:Sep,Januay,nil; 2arrsortUsingSelector:selector(compare:); 3NSLog(%i,arrretainCount); 4for(NSString*nameinarr) 5NSLog(%,name); 6 7 8/输出 92010-12-2913:41:34.925HelloWorld3415:a0f1 102010-12-2913:41:34.928HelloWorld3415:a0fJanuay 112010-12-2913:41:34.930HelloWorld3415:a0fSepNSSet和NSMutableSetNSSet和NSMutableSet分别是不可变集合和可变集合。集合是一组单值的操作。NSSet和NSMutableSet都需要考虑释放问题。代码1 NSSet *set = NSSet setWithObjects:NSNumber numberWithInt:10,bb,aa,bb,aa,nil;2 for(id *obj in set)3 NSLog(%,obj);4 5 NSLog(%i,set count);6 NSLog(%i,set retainCount);/输出2010-12-29 13:56:08.397 HelloWorld3709:a0f 102010-12-29 13:56:08.400 HelloWorld3709:a0f aa2010-12-29 13:56:08.401 HelloWorld3709:a0f bb2010-12-29 13:56:08.401 HelloWorld3709:a0f 32010-12-29 13:56:08.402 HelloWorld3709:a0f 1NSDictionary和NSMutableDictionarydictionary是由键-对象对组成的数据集合。NSDictionay和NSMutableDicionary都需要考虑内存释放问题。代码1 NSDictionary *dict = NSDictionary2 dictionaryWithObjects:NSArray arrayWithObjects:val1,val2,nil3 forKeys:NSArray arrayWithObjects:key2,key1,nil;4 5 for(NSString *key in dict)6 NSLog(%,dict objectForKey:key);7 8 NSLog(%i,di
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司野生植物管护巡护工工艺技术规程
- 塑料制品烧结工班组协作知识考核试卷含答案
- 公司高空外墙清洗员岗位标准化技术规程
- 固态电解质制造工合规化技术规程
- 公司井下作业工应急处置技术规程
- 聚酯装置操作工现场作业技术规程
- 香料合成工岗前跨界整合考核试卷含答案
- 自闭症注意力训练课件
- 电子竞技运营师安全知识竞赛模拟考核试卷含答案
- 2025年上高县中小学教师招聘笔试参考题库及答案解析
- 猫瘟毕业论文3000字
- 睡眠呼吸暂停低通气综合征护理课件
- 2025年滨州市农发投资集团有限公司及权属公司公开招聘工作人员(第二批)(8名)考试笔试备考题库及答案解析
- 2026年陕西省选调生招录(面向陕西师范大学)历年真题库附答案解析(夺冠)
- 公路工程计量与计价 第3版 课件 第1-5章 建筑安装工程费工程计算 - 路基工程工程量清单计量与计价
- 认识一次函数(第1课时)(导学案)(原卷版)
- 酒店折口布培训
- 2025公务员文旅局考试真题及答案
- 国家义务教育质量监测(2025年)中小学生心理健康测试及答案
- 基于电力优化的Boost型有源功率因数校正控制器芯片深度设计与应用研究
- 城管执法局执法规范课件
评论
0/150
提交评论