黑马程序员-----OC学习之Foundation中的结构体

Foundation中的结构体:
NSRange结构体:

1.定义:是用来计算字符串范围的;它有两个成员,一个是location表示开始位置,一个是lenth表示长度;

//NSRange的定义
typedef struct _NSRange {
    NSUIntegerlocation;
    NSUIntegerlength;
} NSRange;

2.举例说明:定义一个字符串 NSString *str = @“i love oc”;
          定义一个结构体变量 NSRange range = NSMakeRange(2,4)//NSMakeRange是系统函数用来计算范围;
          还可以用另外一个函数rangeOfString表示计算字符串的范围的函数:用法如NSRange = range1 = [str rangeOfString : @“love”];表示计算love在             str这个字符串中的范围;

          我们可以打印出来location和lenth的值NSLog(@“location = %ld,length = %ld”,range1.location,range1.lenth)


//创建一个NSRange
NSMakeRange(NSUInteger loc, NSUInteger len)

//判断一个点是否在里面
BOOL NSLocationInRange(NSUInteger loc, NSRange range)

//判断是否相等
BOOL NSEqualRanges(NSRange range1, NSRange range2)
实例:
#import 
    
    
     
     

int main()
{
    //定义一个range
    NSRange range = NSMakeRange(0, 3);
    //输出range的location和length
    NSLog(@"%ld--%ld",range.location,range.length);
    
    //查找某个字符串再另一个字符串的范围
    NSString *str = @"just a demo";
    //查找
    NSRange range2 = [str rangeOfString:@"a"];
    //输出
    NSLog(@"%ld,%ld",range2.location,range2.length);
    
    return 0;
}

    
    


字符串的截取:substringWithRrange 截取一个字符串中的字符串;
假如我们要截取传智iOS学院最牛X这几个字:
int main(int argc, const char * argv[]) {
    @autoreleasepool {
NSString *str = @"
    
    
     
     传智iOS学院最牛X
    
    ";
    //  @">"  loc+1
    NSUInteger loc = [str rangeOfString:@">"].location + 1;  //"传"得位置
    //  @"
    
    


NSPoint/CGpoint结构体:

1.定义:用来确定坐标的:两个成员1.CGfloat x  2.CGfloat y CGfloat就是double类型;

struct CGPoint {
  CGFloat x;
  CGFloat y;
};

typedef struct CGPoint CGPoint;

2.函数使用:

          1.NSPoint p1 = NSMakePoint(10,10);表示坐标就是x = 10  y = 10;这事坐标值

          2.CGPoint p2 = CGPointMake(20.20);//比较常用这个;

          3.BOOL b = CGPointEqualToPoint (CGPointMake(10,10),CGPointMake(20,10))//用来判断两个点是不是相同是不是同一个坐标位置;
 //NSPoint和CGPoint的创建类似
 NSPoint point =NSMakePoint(10, 10);
    CGPoint point2 = CGPointMake(12, 12);
    //注意 x 和 y 是 double 类型
    NSLog(@"%f,%f",point.x,point.y);
    NSLog(@"%f,%f",point2.x,point2.y);
//判断两点是否相等
 BOOL b = CGPointEqualToPoint(point, point2);
    NSLog(@"%d",b);


3.访问成员的函数:NSString *str1 = NSStringFromPiont(p1);//转换成字符串以后再来访问;


NSSize/CGSize结构体:

1.定义:用来确定按钮高度宽度:两个成员1.width 2.height

struct CGSize {
  CGFloat width;
  CGFloat height;
};

2.函数使用:

          1.NSSize s1 = NSMakeSize(100,10);

          2.CGSize s2 = CGSizeMake(200.20);

          3.BOOL b = CGSizeEqualToSize (CGSizeMake(10,10),CGSizeMake(20,10))//用来判断两个宽度高度是不是相同;
   //创建 size
    NSSize size =NSMakeSize(10, 12);
    CGSize size2 = CGSizeMake(11, 10);
    //打印 size
    NSLog(@"%@",NSStringFromSize(size2));
    NSLog(@"%f,%f",size.width,size.height);

3.访问成员的函数:NSString *str2 = NSStringFromSize(s1);


NSRect/CGRect结构体:

1.定义:它的成员还是结构体:1.CGPoint origin  2.CGSize size;

struct CGRect {
  CGPoint origin;
  CGSize size;
};

typedef struct CGRect CGRect;

2.函数使用:

          1.NSRect r1 = NSMakeRect(0,0,100,100);

          2.CGRect r2 = CGRectMake(0,0,100,100);

          3.CGRect r3 ={p1,s1};//表示将p1和s1作为Rect成员;

          4.BOOL b = CGPointEqualToRect (CGRectMake(10,10,20,30),CGRectMake(20,10,49,40))//用来判断两个rect是不是相同;

          5.BOOL b = CGRectContainPoint (CGRectMake(13,34,10,10),CGPointMake(20,10))//用来判断点是不是在这个框的范围内;

    //创建 CGRect 和 NSRect
    NSRect rect = NSMakeRect(0, 0, 10, 10);
    CGRect rect2 = CGRectMake(0, 0, 5, 5);
    
    //判断两个 rect 是否相同
    BOOL b = CGRectEqualToRect(rect, rect2);
    //判断一个 rect 是否包含另一个 rect
    BOOL b2 = CGRectContainsRect(rect, rect2);
    //判断点是否在 rect 内
    BOOL b3 = CGRectContainsPoint(rect2, NSMakePoint(5, 5));
    
    //打印判断结果
    NSLog(@"%d,%d,%d",b,b2,b3);



3.访问成员的函数:NSString *str3 = NSStringFromRect(r1);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值