Foundation框架 - 结构体

一、基础知识

  如果要想使用 Foundation 框架的数据类型,那么包含它的主头文件就可以了。即 #import <Foundation/Foundation.h> 

  补充: Core Foundation 框架是相对底层,里面的代码几乎都是C语言的,而 Foundation 中是OC的。

      iOS中坐标原点在左上角,向右水平方向为x轴,向下垂直方向为y轴。

二、常用的结构体介绍及简单使用

  常用的结构体:

    //在Foundation框架中常用的四种结构体
    NSRange(location, length)       //表示范围
    CGPoint(x, y)                   //表示坐标
    CGSize(width, height)           //表示UI元素的尺寸
    CGRect(CGPoint, CGSize)         //一个UI元素的位置和尺寸

  (一) NSRange 的基本使用

   @"I love programming"   //love的范围,location=2,length=4 

   {1, 2, 3, 4, 5} //后三个数字的范围,location=2, length=3 

  //使用NSRange创建变量
  NSRange r1 = {2, 4};    //可读写不好
  NSRange r2 = {.location=2, .length=4};  //比较多余
  NSRange r3 = NSMakeRange(2, 4)      //必须掌握
1 //查找某个字符串在str中的范围
2 NSString *str = @"I love programming";
3 NSRange range = [str rangeOfString:@"love"];
4 NSLog(@"loc = %ld, length = %ld", range.location, range.length);
输出:loc = 2, length = 4

  

  (二) CGPoint 的使用

   CGPoint p1 = CGPointMake(20, 20); 

   CGPoint p2 = CGPointZero;  //表示原点(0,0) 

 

  (三) CGSize 的使用

   CGSize s1 = CGSizeMake(100, 50); 

   CGSize s2 = CGSizeZero; 

 

  (四) CGRect 的使用

    CGRect r1 = CGRectMake(0, 0, 100, 50);
    CGRect r2 = { {0, 0}, {100, 50}};
    CGRect r3 = {p1, s1};
    CGRect r4 = {CGPointZero, CGSizeMake(100, 90)};
    CGRect r5 = CGRectZero;
NSLog(@"x=%.1f, y=%.1f, width=%.1f, height=%.1f", r1.origin.x, r1.origin.y, r1.size.width, r1.size.height);
输出为:x=0.0, y=0.0, width=100.0, height=50.0

 

1     //将结构体转为字符串
2     NSString *str1 = NSStringFromRange(range1);
3     NSString *str2 = NSStringFromCGPoint(p1);
4     NSString *str3 = NSStringFromCGSize(s1);
5     NSString *str4 = NSStringFromCGRect(r1);
6     NSLog(@"str1 = %@\n str2 = %@\n str3 = %@\n str4 = %@", str1, str2, str3, str4);
输出为:

 str1 = {2, 4}

 str2 = {20, 20}

 str3 = {100, 50}

 str4 = {{0, 0}, {100, 50}}

 

  (五) Foundation 框架中结构体常用函数

1     BOOL a = CGPointEqualToPoint(CGPointMake(10, 10), CGPointZero);
2     BOOL b = CGSizeEqualToSize(s1, s2);
3     BOOL c = CGRectEqualToRect(r1, r2);
4     BOOL d = CGRectContainsPoint(r1, CGPointZero);
5     NSLog(@"a=%d, b=%d, c=%d, d=%d", a, b, c, d);
输出为:a=0, b=0, c=1, d=1

 

参考博文:foundation框架—结构体

  

posted @ 2016-01-01 16:06  pestle  阅读(336)  评论(0编辑  收藏  举报