一、基础知识

  如果要想使用 Foundation 框架的数据类型,那么包含它的主头文件就可以了。即 #import <Foundation/Foundation.h>

  补充: Core Foundation 框架是相对底层,里面的代码几乎都是C语言的,而 Foundation 中是OC的。

     iOS中坐标原点在左上角,向右水平方向为x轴,向下垂直方向为y轴。

二、常用的结构体介绍及简单使用

  常用的结构体:

    //在Foundation框架中常用的四种结构体
NSRange(location, length) //表示范围
CGPoint(x, y) //表示坐标
CGSize(width, height) //表示UI元素的尺寸
CGRect(CGPoint, CGSize) //一个UI元素的位置和尺寸

  (一) NSRange 的基本使用

   @"I love programming"   //love的范围,location=2,length=4

   {, , , , } //后三个数字的范围,location=2, length=3

  //使用NSRange创建变量
NSRange r1 = {, }; //可读写不好
NSRange r2 = {.location=, .length=}; //比较多余
NSRange r3 = NSMakeRange(, ) //必须掌握
 //查找某个字符串在str中的范围
NSString *str = @"I love programming";
NSRange range = [str rangeOfString:@"love"];
NSLog(@"loc = %ld, length = %ld", range.location, range.length);
输出:loc = 2, length = 4

  

  (二) CGPoint 的使用

   CGPoint p1 = CGPointMake(, );

   CGPoint p2 = CGPointZero;  //表示原点(0,0)

  (三) CGSize 的使用

   CGSize s1 = CGSizeMake(, );

   CGSize s2 = CGSizeZero;

  (四) CGRect 的使用

    CGRect r1 = CGRectMake(, , , );
CGRect r2 = { {, }, {, }};
CGRect r3 = {p1, s1};
CGRect r4 = {CGPointZero, CGSizeMake(, )};
CGRect r5 = CGRectZero;
NSLog(@"x=%.1f, y=%.1f, width=%.1f, height=%.1f", r1.origin.x, r1.origin.y, r1.size.width, r1.size.height);
输出为:x=0.0, y=0.0, width=100.0, height=50.0
     //将结构体转为字符串
NSString *str1 = NSStringFromRange(range1);
NSString *str2 = NSStringFromCGPoint(p1);
NSString *str3 = NSStringFromCGSize(s1);
NSString *str4 = NSStringFromCGRect(r1);
NSLog(@"str1 = %@\n str2 = %@\n str3 = %@\n str4 = %@", str1, str2, str3, str4);
输出为:

 str1 = {2, 4}

 str2 = {20, 20}

 str3 = {100, 50}

 str4 = {{0, 0}, {100, 50}}

  (五) Foundation 框架中结构体常用函数

     BOOL a = CGPointEqualToPoint(CGPointMake(, ), CGPointZero);
BOOL b = CGSizeEqualToSize(s1, s2);
BOOL c = CGRectEqualToRect(r1, r2);
BOOL d = CGRectContainsPoint(r1, CGPointZero);
NSLog(@"a=%d, b=%d, c=%d, d=%d", a, b, c, d);
输出为:a=0, b=0, c=1, d=1

参考博文:foundation框架—结构体

  

Foundation框架 - 结构体的更多相关文章

  1. foundation框架—结构体

    Foundation框架—结构体 一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框 ...

  2. 李洪强iOS开发之Foundation框架—结构体

    Foundation框架—结构体 一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框 ...

  3. Objective-C:Foundation框架-结构体

    在Foundation中定义了很多常用结构体类型来简化我们的日常开发,这些结构体完全采用Objective-C定义,和我们自己定义的结构体没有任何区别,之所以由框架为我们提供完全是为了简化我们的开发. ...

  4. OC Foundation框架—结构体

    一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...

  5. 黑马程序员——OC语言Foundation框架 结构体

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)结构体 NSRange(location length) NSPoi ...

  6. 「Foundation」结构体

    一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...

  7. iOS-Foundation框架—结构体(转载)

    一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...

  8. 八、Foundation -常用结构体

    一.NSRange 在foundation/NSRange.h中对NSRange的定义 typedef struct _NSRange{ NSUInteger location; NSUInteger ...

  9. OC - 7.Foundation框架的简单介绍

    OC语言-07-OC语言-Foundation框架   结构体 NSRange/CGRange 用来表示一个元素在另一个元素中的范围,NSRange等价于CGRange 包含两个属性: NSUInte ...

随机推荐

  1. Linux常用监控命令简介 - top

    top -hv | -bcisS -d delay -n iterations -p pid [, pid ...] 指令介绍-b : 批次模式运行.-c : 显示执行任务的命令行.-d : 设定延迟 ...

  2. jmeter 分布式压测(Linux)

    之前一篇博文写的是如何在Linux上使用jmeter压测,这篇介绍下Linux上jmeter的分布式压测. 和windows上的分布式类似,需要配置agent节点和控制机 一.Agent节点配置 1. ...

  3. javascript基础修炼(6)——前端路由的基本原理

    [造轮子]是笔者学习和理解一些较复杂的代码结构时的常用方法,它很慢,但是效果却胜过你读十几篇相关的文章.为已知的API方法自行编写实现,遇到自己无法复现的部分再有针对性地去查资料,最后当你再去学习官方 ...

  4. Python全栈开发之---assert断言

    一.python assert的作用: 根据Python 官方文档解释(https://docs.python.org/3/reference/simple_stmts.html#assert), & ...

  5. 生产者消费者C++实现

    #include<string>#include<iostream>#include<process.h>#include<windows.h>#inc ...

  6. Linux设备驱动之IIO子系统——Triggered buffer support触发缓冲支持

    Triggered buffer support触发缓冲支持 在许多数据分析应用中,能够基于某些外部信号(触发器)捕获数据是比较有用的. 这些触发器可能是: 数据就绪信号 连接到某个外部系统的IRQ线 ...

  7. mac IDE输入光标变成块状 改为竖线

    mac下安装IDE后,出现“输入光标变成块状”的情况,是因为安装的时候装了ideaVim插件,改为竖线光标的方法:把ideaVim插件去掉

  8. 一文看懂HTTPS的核心知识

    1.HTTPS历史 由于HTTP的消息传输的安全隐患,于是网景公司在1994年设计了SSL(Secure Sockets Layer,安全套接字层)协议,目的是保障网上交易安全,从而就诞生了HTTPS ...

  9. 驰骋工作流引擎JFlow与activiti的对比之2种结构化模式

    1. 任意循环(Arbitrary Cycles) ACTIVITI : 某一个或多个活动可以反复执行. 例子:用户买了瓶汽水,拿到汽水后,中了一瓶,又去兑换了一瓶汽水,如果又中了,再去兑换一瓶汽水- ...

  10. jsp+servlet include引入文件指令

    1.index.jsp为首页 <%@ page contentType="text/html;charset=UTF-8" import="java.util.*& ...