Foundation框架中的常用数据类型

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];


NSString的length方法,返回的是字符串中的字符个数。

-(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是不同的字符串,所以第二种方法会认为它们是不同的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值