Foundation框架下的结构体

来源:互联网 发布:c语言void什么意思 编辑:程序博客网 时间:2024/04/26 07:47

Foundation框架是学习iOS 和Mac开发的最基本的框架之一,对于有C语言基础的学者来说非常容易学习,他在很多方面都和C语言相似,而且它是进一步学习OC语言的基础。下面就有我给大家讲述我的Foundation框架学习经验。

从结构看看结构

以下是Foundation框架中常用的结构体,大家可以发现有的组每组结构体中都有两个,其实他们的实都是一样的.只不过是使用了一次typedef给结构体起了一个别名,他们所表达的意思完全一样。比如OC中有一种CGFloat类型数据,我们点进他的头文件,会发现它其实是double类型数据经过typedef的别名。
这里写图片描述

  1. NSRange
    表示范围的结构体从第location个开始取,连续取length个,包含两个CGFloat类型成员
    变 量,loaction 和length

    typedef struct _NSRange {     NSUInteger location;     NSUInteger length;} NSRange;
    1. NSPoint CGPiont
      表示屏幕上一个点的坐标,包含两个CGFloat类型成员变量,即坐标的X和Y

      struct CGPoint {    CGFloat x;    CGFloat y;};typedef CGPoint NSPoint; // NSPoint 的定义
    2. 表示大小或尺寸的结构体,包含两个CGFloat类型成员变量,矩形的长和宽,

    struct CGSize {    CGFloat width;    CGFloat height;};typedef struct CGSize CGSize;typedef CGSize NSSize; // NSSize 的实现
    1. NSRect CGRect
      表示一个矩形,包两个结构体,CGPoint 和 CGSize ,CGPoint 表示矩形左上角的坐标,
      CGsize表示矩形的长和宽。
    struct CGRect {     CGPoint origin;     CGSize size;};typedef struct CGRect CGRect;typedef CGRect NSRect;

下面是一个例证:

这里写图片描述

创建结构体

我们以NSPoint举例:

  1. 使用最原始的初始化方法,就是C语言的,按顺序赋值

    NSPoint point = {2,3};
  2. 使用点赋值

    NSPoint point = {0};point.x = 3;point.y = 2;
  3. 也是一种点语法

    NSPoint point3 = {.y = 3 , .x = 2};
  4. 使用OC提供的方法 推荐使用这种方法去构建结构体

    NSPoint point4 = NSMakePoint(2, 3);CGPoint point5 = CGPointMake(2, 3); // 其实这两种方法可以混用,不会错误// 你也可以这么写NSPoint point = CGPointMake(2, 3);
  5. 从字符串中获得

    NSString *string = @"(2,3)";
    NSPoint point = NSPointFromString(string);

小结

  • 结构体常用函数:(依赖框架CoreGraphics(定义位置) Foundation框架中声明了)

    1. CGPointEqualToPoint(比较两个点是否相同)
    2. CGSizeEquealToCGSize
    3. CGRectEqualToCGRect
    4. CGRectContaintsPoint(是否包含某个点) 判断触摸点是否在视图(或子控件)上
  • 一些特殊的结构体

    1. CGPointZero // 原点
    2. CGSizeZero 特殊的size
    3. CGRectZero 特殊的矩形
  • 结构体中CG 和 NS 两大类结构体
    CG结构体可以跨平台,在UI设计常用

0 0
原创粉丝点击