Foundation框架 - 结构体

时间:2023-02-24 15:08:07

一、基础知识

  如果要想使用 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框架—结构体&lpar;转载&rpar;

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

  8. 八、Foundation -常用结构体

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

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

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

随机推荐

  1. ubuntu 默认防火墙安装、启用、查看状态

    ubuntu 9.10默认的是UFW防火墙,已经支持界面操作了.在命令行运行ufw命令就可以看到提示的一系列可进行的操作. 最简单的一个操作:sudo ufw status可检查防火墙的状态,我的返回 ...

  2. GitHub的三个按钮

    star 的作用是收藏,目的是方便以后查找. watch 的作用是关注,目的是等作者更新的时候,可以收到通知 fork 的作用是参与,目的是你可以增加新的内容,然后 Pull Request,把你的修 ...

  3. Jquery note

    the purpose: write less. do more   写得少,做更多 jquery 基本选择器, $("p ,div ")匹配所有的P元素和DIV元素 , $(&q ...

  4. The document &quot&semi;ViewController&period;xib&quot&semi; could not be opened&period; Could not read archive&period;

    The document "ViewController.xib" could not be opened. Could not read archive. Please use ...

  5. 关于H5在微信浏览器内自动转格式,导致不能正常打开的问题

    从最近开始,微信朋友圈打开我们的H5页面有时会出现了“此网页已被QQ浏览器重新排版”的提示,直接结果就是导致H5网页或H5小游戏不能正常显示了!!这个问题什么严重,不知道腾讯又是怎么考虑的,难道真的是 ...

  6. 跨域两种解决方案CORS以及JSONP

    一.CORS设置请求头 设置请求头实现跨域: //跨域的浏览器会让请求带Origin头,表明来自哪里的跨域请求 Origin: http://xxx.example //表明允许跨域访问 Access ...

  7. kubectl top查看k8s pod的cpu &comma; memory使用率情况

    To see the pods that use the most cpu and memory you can use the kubectl top command but it doesn’t ...

  8. 出现&quot&semi;未将对象引用设置到对象的实例&OpenCurlyDoubleQuote;问题的总结

    今天做机房收费系统时,将DataGridView中的数据导入到Excel中,当运行到这一句代码”xlApp.Cells(rows + 2, j + 1) = DataGridView1(j, rows ...

  9. Search for a range&comma; 在一个可能有重复元素的有序序列里找到指定元素的起始和结束位置

    问题描述:给定一个有序序列,找到指定元素的起始和结束位置.例如:1234555,5,起始4结束6 算法分析:其实就是一个二分查找的利用.但是特殊就在不是找到某个元素,而是找到下标.也就是在nums[m ...

  10. ORACLE 11G负载均衡测试

    Oracle 11g R2中,引入了SCAN(Single Client Access Name)的特性.该特性的好处在于,在数据库与客户端之间,添加了一层虚拟的服务层,就是所谓的SCAN IP以及S ...