黑马程序员_IOS开发_Objective-C学习笔记_Foundation框架常用的结构体

1.Foundation框架简介

1.1使用Foundation可以:

*创建和管理集合,比如数组和字典

*访问存储在应用程序里的图片和其它资源

*创建和管理字符串

*提交和接收通知

*创建日期和时间对象

*自动发现IP网络上的设备

*操作URL流

*执行异步代码

 

注意:Foundation框架是默认导入的 所以不用刻意去导入 是必备的框架之一

 

1.2Foundation框架中一些经常接触到的结构体

由于Objective-C程序中 对象的结构体成员变量中的元素 不能通过对象直接来访问 所以我们要通过新建一个结构体并整体赋值的方式来达到修改对象结构体成员变量的元素。

而IOS的界面设计框架 UIKit里面许多类 例如UIView的许多操作都是通过结构体来的 所以结构体的相关知识和操作需要我们熟练掌握

 

*CGPoint结构体

1.2.1定义如下:

 

  1. # define CGFLOAT_TYPE double  
     struct CGPoint {  
        CGFloat x; //double类型  
        CGFloat y;  
     };  
     typedef struct CGPoint CGPoint;  

     

      


1.2.2CGPoin可用于表示一个位置坐标

1.2.3常用的设定位置的方法:

CGPoint point = CGPointMake(20, 20); //IOS开发中经常使用

CGPointZero == CGPointMake(0,0);

 

1.2.4判断两个点是否相等的方法

 

  1. BOOL p =  CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));  

*CGSize结构体

1.2.5定义如下:

 

  1. struct CGSize {  
     CGFloat width;  
     CGFloat height;  
     };  
     typedef struct CGSize CGSize;

     

1.2.6作用,可用于表示一个矩形,一个元素占用屏幕的范围

 

1.2.7常用的设定范围的方法: 

CGSize size = CGSizeMake(100, 200);
CGSizeZero==  CGSizeMake(0, 0);

 

1.2.8判断两个size是否相等的方法

 

  1. BOOL s = CGSizeEqualToSize(CGSizeMake(100, 200), CGSizeMake(100, 200));

     

*CGRect结构体

1.2.9定义如下:

 

  1. struct CGRect {  
     CGPoint origin;  
     CGSize size;  
     };  
     typedef struct CGRect CGRect;

     

1.2.10作用,这个结构体涵盖了,基本位置的点和占用屏幕的大小,就可确定这个元素在屏幕的具体位置和范围,确切的说可以表示一个矩形

   所以我们在操作UIView及其子类的对象的bound,frame属性的时候经常要用到这个结构体

 

   注意:由于不能直接访问对象结构体中的元素,所以我们只能通过创建一个结构体并赋值的方法来达到修改对象中的结构体中的元素的目的

      例如我们想修改一个UIView的位置和大小的时候 我们不能直接修改该UIView对象中的frame元素 例如 x,y。而需要创建一个CGRect结构体 然后整体赋值来操作。

 

 

1.2.11常用的设定结构体值的方法

 

  1. CGRect r1 = CGRectMake(0, 2, 100, 200);  
    CGRect r2 = {{0,0},{100,200}};  
    CGRect r3 = {p1,s1};//直接使用点结构体和size结构体变量 

     

1.2.12判断一个矩形是否包含了某点的方法

BOOL r = CGRectContainsPoint(CGRectMake(0, 0, 100, 200), CGPointMake(100, 201));

5. 开发过程中经常要查看几个结构的值,一般都转化为字符串:

 

  1. // 开发中经常查看:常规做法将所有数据转化为字符串  
        NSString *string = NSStringFromPoint(p1);  
        NSString *string1 = NSStringFromSize(s1);  
        NSString *string2 = NSStringFromRect(r1);  
        NSLog(@"p1:%@",string);  
        NSLog(@"s1: %@",string1);  
        NSLog(@"r1: %@",string2);   

     

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。