一、基础知识
如果要想使用 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
{1, 2, 3, 4, 5} //后三个数字的范围,location=2, length=3
//使用NSRange创建变量 NSRange r1 = {2, 4}; //可读写不好 NSRange r2 = {.location=2, .length=4}; //比较多余 NSRange r3 = NSMakeRange(2, 4) //必须掌握
1 //查找某个字符串在str中的范围 2 NSString *str = @"I love programming"; 3 NSRange range = [str rangeOfString:@"love"]; 4 NSLog(@"loc = %ld, length = %ld", range.location, range.length);
输出:loc = 2, length = 4
(二) CGPoint 的使用
CGPoint p1 = CGPointMake(20, 20);
CGPoint p2 = CGPointZero; //表示原点(0,0)
(三) CGSize 的使用
CGSize s1 = CGSizeMake(100, 50);
CGSize s2 = CGSizeZero;
(四) CGRect 的使用
CGRect r1 = CGRectMake(0, 0, 100, 50); CGRect r2 = { {0, 0}, {100, 50}}; CGRect r3 = {p1, s1}; CGRect r4 = {CGPointZero, CGSizeMake(100, 90)}; 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
1 //将结构体转为字符串 2 NSString *str1 = NSStringFromRange(range1); 3 NSString *str2 = NSStringFromCGPoint(p1); 4 NSString *str3 = NSStringFromCGSize(s1); 5 NSString *str4 = NSStringFromCGRect(r1); 6 NSLog(@"str1 = %@ str2 = %@ str3 = %@ str4 = %@", str1, str2, str3, str4);
输出为:
str1 = {2, 4}
str2 = {20, 20}
str3 = {100, 50}
str4 = {{0, 0}, {100, 50}}
(五) Foundation 框架中结构体常用函数
1 BOOL a = CGPointEqualToPoint(CGPointMake(10, 10), CGPointZero); 2 BOOL b = CGSizeEqualToSize(s1, s2); 3 BOOL c = CGRectEqualToRect(r1, r2); 4 BOOL d = CGRectContainsPoint(r1, CGPointZero); 5 NSLog(@"a=%d, b=%d, c=%d, d=%d", a, b, c, d);
输出为:a=0, b=0, c=1, d=1
参考博文:foundation框架—结构体