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

来源:互联网 发布:淘宝宝贝高峰期下架 编辑:程序博客网 时间:2024/05/16 14:31

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}}
}

0 0
原创粉丝点击