Objective-C之Foundation中常见的结构体struct

Foundation框架的结构体:

首先介绍一下结构体
void test(){
  //定义Date这种结构体类型
  struct Date{
     int year;
     int month;
     int day;
  }
  //定义结构体变量
   struct Date d = {2013, 07, 27};
   d.day = 6;
}

void test1(){
    typedef struct Date {
       int year;
       int month;
       int day;
    } MyDate;
     //MyDate就是这个结构体
     MyDate d = {2013, 07, 27};
}
下面介绍Foundation框架常用的结构体
NSRange :
这个结构体表示某个事物的范围,通常是字符串里的字符串范围,或者集合里的元素范围
源码是:
typedef struct _NSRange {
   NSUInteger location; //起始位置
   NSUInteger length; //元素个数
} NSRange;

三种方式创建一个NSRange变量
方式一:
NSRange reange;
reange.location = 7;
range.length = 3;

方式二:
NSRange range = {3, 7}
或者 NSRange range = {.location=7, .length = 3};

方式三:
Foundation框架提供的一个快捷函数NSMakeRange
NSRange range = NSMakeRange(7,3);

使用方法:
void range() {
  NSRange range = NSMakeRange(8, 10); //结构体不是对象
  NSLog(@"location:%zi", range.location); //$z 无符号

//把range转换成字符串
  NSString * str = NSStringFromRange(range);
  NSLog(@"%@", str);  //打印: {8, 10}
}

NSPoint:

void point(){
     NSPoint p; //也可以写成CGPoint
     //方式一
     p.x = 1;
     p.y = 10;
     //方式二
     p = NSMakePoint(1,9);
     //或者p = CGPointMake(1, 9); //(最常见的方式)

     //把NSPoint结构体编程字符串
     NSString *str = NSStringFromPoint(p);
     NSLog(@"%@", str); //打印 {1, 10};
}

NSSize:

void size() {
   NSSize size ;
   //方式一
   size.width = 100;
   size.height = 90;
 
  //方式二
  size = NSMakeSize(100,90);
  //或者size = CGSizeMake(100, 90);

   NSString * str = NSStringFromSize(size);
   NSLog(@"%@", str); //打印 {100, 90}
}

NSRect:
包含位置(origin)、尺寸(size)

void rect() {
   NSRect rect ;
   rect.origin.x = 10;
   rect.origin.y = 11; //不允许使用 rect.origin = {10, 11}这种方式

   rect.size.width = 100;
   rect.size.height = 90;

   //也可以使用下面方式赋值
   rect = CGMakeRect(10, 11, 100, 90);

   NSString * str = NSStringFromRect(rect);
   NSLog(@"%@", str); //打印{{10, 11},{100, 90}}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值