• 01-Foundation中的结构体


      正如其名,Foundation框架是所有其它iOS框架的基础。

      Foundation框架包含了很多开发中常用的数据类型:

      (1) 结构体

      (2) 枚举

      (3) 类

      要想使用Foundation中的数据类型,包含它的主头文件即可

      #import <Foundation/Foundation.h>

    1、Foundation框架包含哪些常用的结构体?

    (1) NSRange

    (2) NSPointCGPoint

    (3) NSSizeCGSize

    (4) NSRectCGRect

    2、具体介绍这4种结构体

    首先,简单复习一下C语言中的结构体:

    使用 typedef 对结构体进行重命名(起别名):

    1、NSRange

    (1) 在Foundation/NSRange.h中对 NSRange 的定义:

    由此可知:NSRange结构体有两个成员:location 和 length。

    其中:NSUInteger (无符号长整型)

     

    (2) NSRange的作用:用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围

      1> location : 表示该范围的起始位置

      2> length :    表示该范围内所含的元素个数

      比如 "I love objectice-c" 中的 "obj" 可以用 location为7, length为3 的范围来表示。

    (3) 创建一个NSRange有3种方式:

      第1种:  直接给成员赋值

      

      第2种: 应用C语言的聚合结构赋值机制

      

      第3种: Foundation框架提供的一个快捷函数NSMakeRange()   

      

      这种最常用,是重点!

    练习:

    (4)查找某个字符串在str中的范围 使用 rangeOfString

    2、NSPointCGPoint

    (1) 在Foundation/NSGeometry.h中对NSPoint的定义

     

    (2) 在CoreGraphics/CGGeometry.h中对CGPoint的相关定义

     

       

    CGFloat 就是 double

    (3) NSPointCGPoint 是等价的

    (4) NSPoint 和 CGPoint的作用:代表的是平面中的一个点(x, y)

    (5) Foundation框架提供了一个NSMakePoint() 创建CGPoint(NSPoint)

      CGPoint point = NSMakePoint(12, 20);

    或者

      NSPoint point = NSMakePoint(12, 20);

    (6) CoreGraphics框架中也提供了CGPointMake()创建一个CGPoint(NSPoint)  这种最常用,重点!!

      CGPoint point = CGPointMake(10, 20); 

    或者

      NSPoint point = CGointMake(10, 20);

    练习:

    (7)CGPointzero == CGPointMake(0, 0); 即坐标原点。

    3、NSSizeCGSize

    (1) 在Foundation/NSGometry.h中对NSSize的定义

    (2) 在CoreGraphics/CGGeometry.h中对CGSize的相关定义

    (3) NSSize 和 CGSize 的作用:用来存储高度和宽度。

    (4) 可以利用NSMakeSize()  和 CGSizeMake()创建CGSizeNSSize。

    练习:

     

    4、NSRectCGRect

    (1) 在Foundation/NSGometry.h中对NSRect的定义

    (2) 在CoreGraphics/CGGeometry.h中对CGRect的相关定义

    (3) NSRect 和 CGRect 的作用:既存储点(x, y) 又存储尺寸(width, height)。

    (4) 可以利用NSMakeRect() 和 CGRectMake() 来创建 CGRectNSRect。

    本节重点:

    (1) 虽然NSPoint、NSSize、NSRect 分别和 CGPoint 、CGSize、CGGRect等价,但是开发中最常用的还是CGPoint 、CGSize、CGRect。

    (2) rangeOfString: 的用法。

    (3) CGPointMake()  、 CGSizeMake() 、CGRectMake的用法。

    (4)将结构体转化为OC字符串

    NSStringFromRange:

    NSStringFromPoint:

    NSStringFromSize:

    NSStringFromRect:

  • 相关阅读:
    最小路径和
    S2 深入.NET和C#编程 机试测试错题积累
    S2 深入.NET和C#编程 笔试测试错题积累
    影院项目的内容信息
    抽象类和抽象的方法注意事项
    六种设计原则
    体检套餐的笔记
    C#图解 类和继承
    深入类的方法
    S2 深入.NET和C#编程 三:使用集合组织相关数据
  • 原文地址:https://www.cnblogs.com/xdl745464047/p/4004660.html
Copyright © 2020-2023  润新知