随笔之IOS常用数据类型

参考书籍: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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值