随笔之IOS常用数据类型
来源:互联网 发布:数据可视化案例 编辑:程序博客网 时间:2024/05/29 18:21
参考书籍:Objective-C基础教程
不喜欢看书,里面字太多了。所以看一次之后把自己想记的东西整理出来。
关于结构体:
NSRange,表示事物相相关范围
定义
typedef struct _NSRange{unsigned int location;//起始位置unsigned int length;//该范围内的个数,或者说是包含的个数}NSRange;
创建方式
1,直接赋值
NSRange range;range.location=17;range.length=14;
2.用C的聚合机制复制
NSRange range={17,4}
3.用Cocoa函数
NSRange range = NSMakeRange(17,4);
其他结构体还有
NSPoint表示平面的一个点
typedef struct _NSPoint{ float x; float y;} NSPoint;
NSSize表示长宽;
typedef struct _NSSize{ float width; float height;} NSSize;
NSRange表示一个矩形
typedef struct _NSRect{ NSPoint origin; NSSize size;}NSRect
关于字符串。
Cocoa中用来处理字符串的类是NSString。
1)创建方式
NSString *name = @"hello";//直接赋值
或
NSString *age = [NSString stringWithFormat:@"age is %i",12]//用 stringWithFormat函数格式化。后面可以带任意多个参数
2)length 方法。可以算出字符个数
name length];//结果是5
3)比较的方式
isEqualString:比较两个字符串的类容是否相同。
== : 比较指针,看是否同一个对象
compare :比较大小,返回结果用枚举类型表示。NSOrderedAscending(左侧的数据比右侧的小),NSOrderedSame,NSOrderedDescending
4)NSString是不可变的,但是可以操作它来生成新的字符串。想改表它的字符是不行的。所以出现了
NSMutableString可变的字符串类。可以通过
appendString 和 appendFormat来添加新的字符串。
关于数组。
NSArrary
可以用类方法arrayWithObjects创建。
NSArray *arr = [NSArray arrayWithObjexts:@"A",@"B",@"C",nil];//nil代表结束。
NSMutableArray代表可变数组,addObject可以添加对象到尾巴上,removeObjectAtIndex删除指定索引的对象。
关于字典
NSDictionary和NSMutableDictionary。
NSDictionary可以使用dictionaryWithObjectsAndKeys:来创建。
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:name,@"cat", age,@"18"];
NSMutableDictionary可创建之后动态添加。
NSMutableDictionary *dics = [NSMutableDictionary dictionary];
[dics setObject:name forKey:@"cat"];
。。。
关于基本类型
OC没有自动装箱功能,而NSArray和NSDictionary只能存储对象,那么对于基本数据类型int,float或结构体struct。怎么办?自己包装!
NSValue:包装任意值。
NSRect rect = NSMakeRect(0,0,10,10);NSValue *value = [NSValue valueWithBytes:&rect objcType:@encode(NSRect)]//第一个参数是要被封装的数据的地址,第二个参数@encode编译器指令可以接受数据类型的名称并为之生成合适的字符串。[array addObject:value];
常用的struct类型转成NSValue方法:
装箱
+(NSValue *) valueWIthPoint:(NSPoint) point;
+(NSValue *) valueWIthSize:(NSSize) size;
+(NSValue *) valueWIthRect:(NSRect) rect;
取消装箱</P>
-(NSPoint) pointValue;
-(NSSzie) sizeValue;
-(NSRect) rectValue;
NSNumber:包装基本数据类型,NSValue的子类,常用的几个方法
numberWithChar:
numberWithInt:
numberWithFloat:
取消装箱
charValue,intValue,floatValue
- 随笔之IOS常用数据类型
- iOS之OC随笔-Model数据类型
- iOS开发入门教程之Objective-C · 常用的数据类型
- C++学习随笔之六 数据类型转换
- iOS之UI随笔-UIScrollView
- Mysql之常用数据类型
- MySQL之常用数据类型
- MySQL之常用数据类型
- IOS-常用数据类型(1)
- IOS-常用数据类型(2)
- VC++ 之 常用的数据类型
- redis之常用数据类型操作
- redis之 Redis常用数据类型
- python学习之常用数据类型
- ios之随笔学习日志(一)
- ios随笔之SAX解析XML文件
- Ios开发随笔之block(一)
- iOS之UI随笔-UIButton与UIImageView
- Unity3D Shader官方教程翻译(十八)----Shader语法 另外一些命令(分类)
- TabPanel多标签tab页加载同一个GridPanel显示不同的数据
- 禁用u盘的方法
- Unity3D Shader官方教程翻译(十九)----Shader语法,编写表面着色器
- Chkdsk—磁盘查错修复命令
- 随笔之IOS常用数据类型
- mysql触发器总结
- slightphp中遇到的各种问题
- (转)android自定义视图属性(atts.xml,TypedArray)学习
- ExtJs——FormPanel(布局)!!!
- 连接上CMCC但打不开网页||连接上路由打不开网页||IE左下角显示[正在连接站点127.0.0.0]的解决方法
- 基于OSGi的企业级开发框架实践——运行开发框架
- 什么是CPC,CPL,CPM,CPL,CPS,PPC,广告?
- DWR实例教程