OC学习:Foundation框架之常用结构体


在iOS开发中所有框架中Foundation框架是最基础的框架,Foundation框架里面包含了常用的类和数据类型。


使用Foundation框架只要包含它的主头文件<Foundation/Foundation.h>即可,主头文件里面包含了框架中所有内容的头文件。


Foundation框架中常用的结构体:NSRange、NSPoint\CGPoint、NSSize\CGSize、NSRect\CGRect

使用CGPoint、 CGSize、CGRect需要包含另一个框架,结构体常用函数是在CoreGraphics.framework框架下面,因此需要先添加框架。


struct Date {
    int year;
    int month;
    int day;
};

struct Date date = {2015,5,2};

struct Date date2 = {.year=2015, .day=10, .month=4};

这个例子是结构体在OC中的表示。


一、NSRange结构体

此结构体表示的是字符位置和长度。

typedef struct _NSRange {
    NSUInteger location;    // 位置
    NSUInteger length;      // 长度
} NSRange; 
// NSUInteger 类型为无符号类型,可以简单理解为表示正整数的类型,在NSLog输出时用ld

查找NSString类对象中某些字符在整个类对象中的NSRange。

NSString *str = @"I like oc"; // NSString类的分类已经对这种需求做了实现 因此可以直接调用类方法来实现
NSRange range  = [str rangeOfString:@"like"]; // 打印的NSRange结构体中的变量由于都是NSUInteger类型 因此在输出时用ld
NSLog(@"location = %ld, length = %ld",range.location,rang.length); 

如果没有找到要查找的值NSRange中的length = 0, location = NSNotFound,其中NSNotFound如果以NSLog(@"%d",NSNotFound); 输出一长串    数字;而如果以 NSLog(@"%d",NSNotFound); 输出的就是 -1。


二、CGPoint

此结构体表示的是点坐标。

用法举例:

CGPoint point = NSMakePoint(20, 20); 
NSPoint point2 = CGPointMake(20, 20);


三、CGSize

此结构体表示的是尺寸。

用法举例:

CGSize size = NSMakeSize(20, 40);
NSSize size2 = CGSizeMake(40, 20); 



四、 CGRect

此结构体表示的是位置和尺寸。

用法举例:

CGRect rect = CGRectMake(20, 20, 50, 100); 
NSRect rect2 = NSMakeRect(20, 20, 50, 100);

CGRectZero == CGRectMake(0,0,0,0);
CGSizeZero == CGSizeMake(0,0);
CGPointZero == CGPointMake(0,0);
CGRect rect = {{20,50},{50,100}};
  
NSPoint point = CGPointMake(20, 20);
NSSize size = CGSizeMake(50, 100);
CGRect rect2  = {point,size};
  
CGRect rect3 = {CGPointZero,CGSizeMake(50, 100)};



你可能感兴趣的:(框架,oc,ios开发,结构体,Foundation)