1.范围
typedef struct _NSRange
{
unsigned int location;
unsigned int length;
}NSRange;
NSRange用来表示相关事物的范围,通常是字符串里的字符范围和数组里的元素范围。
location字段存放该范围的起始位置,而length字段则是该范围内所含元素的个数。
在字符串"Hello,Objetive-C"中,单词Hello可以用location为1,length为5的范围来表示。
创建新的NSRange有三种方式:
1)直接给字段赋值
NSRange range;
range.location = 1;
range.length = 5;
2)应用C语言的聚合结构赋值机构
NSRange range = {1,5};
3)Cocoa提供的一个快捷函数NSMAkeRange();
NSRange range = NSMakeRange(1, 5);
2.几何数据类型
带有CG前缀——用来处理集合图像的数据类型。
CGPoint——笛卡尔平面中的一个坐标(x,y)。
struct CGPoint
{
float x;
float y;
};
CGSize——存储长度和宽度
struct CGSize
{
float width;
float height;
};
CGRect——矩形
struct CGRect
{
float origin;
float size;
};
创建这些数据类型的快捷函数 CGPointMake()、CGSizeMake()、CGRectMake()
3.字符串
创建字符串
NSString的stringWithFormat:方法就是通过格式字符串和参数来创建NSString的。
+(id)stringWithFormat:(NSString*)format,...;
定义最后的省略号(...)表示这个方法可以接受多个以都好隔开的其他参数,就像printf()和NSLog()一样。
在OC中加号表示声明类方法,这个方法属于类对象,而不是类的实例对象,通常用于创建新的实例。这种用来创建新对象的类方法呗称为工厂方法。
NSString *height;
height =[NSString stringWithFormat:@"Your height is %d feet,%d inches",5,11];
-(NSUInteger)length;
if ([height length]>20)
{
NSLog(@"Now,You're really tall!");
}
1)isEqualToString:可以用来比较接收方和作为参数传递过来的字符串,返回一个BOOL值来表示两个字符串的内容是否相同。
-(BOOL)isEqualToString:(NSString*) aString;
NSString *s1 = @"hey 2333"; NSString *s2 = [NSString stringWithFormat:@"hey %d",2333]; if ([s1 isEqualToString:s2]) { NSLog(@"They are the same!"); }
不同于
if (s1 == s2) { NSLog(@"They are the same object!"); }
这是因为==运算符只判断s1和s2的指针数值,而不是它们所指的对象。由于s1和s2是不同的字符串,所以第二种方法会认为它们是不同的。 <