• 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:

  • 相关阅读:
    Mysql一分钟定位 Next-Key Lock,你需要几分钟
    golang 服务大量 CLOSE_WAIT 故障排查
    Mysql大并发热点行更新的两个骚操作
    golang 服务诡异499、504网络故障排查
    golang 服务平滑重启小结
    vim 列编辑模式
    特邀全球互联网技术大会(麒麟会GITC)分享 —大型团购系统架构设计
    ElasticSearch 评分排序
    zookeeper 实现分布式锁安全用法
    诡异的druid链接池链接断开故障经验总结
  • 原文地址:https://www.cnblogs.com/xdl745464047/p/4004660.html
Copyright © 2020-2023  润新知