黑马程序员 -结构体的使用总结
结构体也是OC中很常用的一个知识点.比如在截取数据源方法的时候,NSRange 这个结构体非常常用.除了NSRange之外,常见的结构体还有NSPoint,NSSize,NSRect,都是非常常用的.
一.利用C语言来看看结构体的形式
分析:其实我们可以看出这个结构体的形式和C语言极其相似.在结构体内部规定了这个结构体拥有的属性.
二. NSRange
(1)创建方式
我们这里首先较为详细说明下结构体可以创建的方式.创建结构体一共有三个方式.
1' 直接给成员赋值,代码如下:
我们可以看出这样的创建方式还是有些麻烦的.
2'应用C 语言的聚合结构体机制来创建
3'这种方式我们常用到,是Foundation框架提供的一个快捷函数NSMakeRange.
这种直接赋值部分可以智能提示出来,比第二种要好,代码量比第一种少.
(1)NSRange应用
我们之前说到,NSRange经常在做截取的时候用到.比如说,我们现在要截取一个字符串.从"123456"中截取23,那么就需要如下代码:
讲到这里,我们一定对 location 和 length 的这两个属性的含义想要了解清楚. location 是代表从哪个位置开始截取, length 是你从 location 那个位置开始往后截取几位.
二.查看结构体对象
我们在接收到结构体对象之后,很多时候都会在调试的时候打印看看这个结构具体的内部的值.
但是我们直接 NSLog打印是不行的,我们需要讲 NSRange 转换成 NSString才可以,类似于这样:
或者这样
%@ 代表的是 C 对象,但是 range 不是对象,是结构体,是不一样的.
三.NSPoint
创建
使用
NSPoint 主要用于设置位置frame 时候的使用.参数的含义,可以直接从参数名称看出,是横纵的坐标.
四. NSSize
NSSize这个结构体用来存储宽和高,也是在设置 frame 的时候用的到.
五. NSRect
NSRect这个和上边两个一样,也是设置 frame 的时候使用,这个一次性可以代替 NSPoint 和 NSSize 的作用,所以比前两个要常用的多.但是前两个也不是没有使用的场景,因为有些情况,我们值设置他的宽和高,却不用设置他的坐标.
常用的结构体就介绍到这里.第一种 NSRage 介绍详细之后,其它的创建的方式和打印信息的方式都是相同类似的.这也是 OC 语言规范的一个体现.
浙公网安备 33010602011771号