博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C学习笔记--一些有用的数据类型
阅读量:6346 次
发布时间:2019-06-22

本文共 1222 字,大约阅读时间需要 4 分钟。

1. 范围的作用

 第一个结构体是NSRange:

typedef struct _NSRange{

      unsigned int location;

      unsigned int length;

}NSRange;

这个结构体用来表示相关事物的范围,通常是字符串里的字符范围或数组里的元素范围,location字段存放该范围的起始位置,而length字段则是该范围内所含元素的个数。在字符串“Objective-C is a cool language”中,单词cool可以用location为17,length为4的范围来表示。也许由于location字段未被初始化,所以它的值可以是NSNotFound,用来表示无意义范围

可以用三种方法创建新的NSRange。

第一种:直接给字段赋值

NSRange range;

range.location=17;

range.length=4;

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

NSRange range={17,4};

第三种:Cocoa提供的一个快捷函数NSMakeRange()

NSRange range=NSMakeRange(17,4);使用NSMakeRange()的好处是你可以在任何能够使用函数的地方使用它,例如在方法调用中将其当成参数传递

[anObject flarbulatewithRange: NSMakeRange(13,15)];

2. 几何数据类型

NSPoint 代表的是笛卡尔平面中的一个点(x,y)

typedef struct _NSPoint{

    float x;

    float y;

}NSPoint;

NSSize用来存储长度和宽度

typedef struct _NSSize{

    float width

    float height;

}NSSize;

在之前的Shapes程序中,我们本可以用一个NSPoint和一个NSSize来表示形状,而不是用自定义的表示举行的struct来表示形状。但是当时,我们是想让程序尽可能简单。Cocoa提供了一个矩形数据类型,它是由点和大小复合而成的:

typedef struct _NSRect{

    NSPoint origin;

NSSize size;

}NSRect;

Cocoa也为我们提供了创建这些数据类型的快捷函数:NSMakePoint()  NSMakeSize()  NSMakeRect()

说明:为什么这些数据类型是C的struct而不是对象呢?原因归结起来就是因为性能,程序会用到许多临时的点、大小和矩形来完成它们的工作。所有的Objective-C对象都是动态分配的,而动态分配是一个代价较高的操作,它会消耗大量的时间,所以讲这些结构创建成第一等级的对象都会在使用过程中增加大量的系统开销

转载于:https://www.cnblogs.com/cc-Cheng/p/3326769.html

你可能感兴趣的文章
navicat下载安装和激活一分钟完成
查看>>
6_5 一些有用网址
查看>>
NFC 鏈表操作
查看>>
pymongo模块
查看>>
第0次作业
查看>>
思维导图五个关键秘诀
查看>>
Ubuntu里设置python默认版本为python3(转载)
查看>>
快排+折半查找
查看>>
c# GC 新典型
查看>>
ssh bash 通配符
查看>>
seajs在jquery多个版本下引用jquery的插件的方案
查看>>
关于网络上java,php和.net的“口角之争“的一点想法 !
查看>>
python 第二周(第十三天) 我的python成长记 一个月搞定python数据挖掘!(21) -正则表达式re...
查看>>
[POI2011]SEJ-Strongbox
查看>>
20文件
查看>>
Android开发Intent应用概述
查看>>
【Go】并发编程
查看>>
VMware虚拟化NSX-Manager命令行更改admin用户密码
查看>>
悦纳自己
查看>>
python字符串函数
查看>>