这些都是
typedef struct XXX
定义的。可能需要添加
CoreGraphics
框架。
- end
1.NSRange区间
如同 Groovy 中的 range 。 NSRange 是一个结构体,即 struct 。#import <Foundation/Foundation.h>
int main()
{
/** 直接创建区间 **/
NSRange range1 = {2, 4}; // 定义结构体方式。位置,长度
NSRange range2 = {.location = 2, .length = 4};// 定义结构体方式
NSRange range3 = NSMakeRange(2, 4);// 使用类方法方式
NSString * str = @"abcdefghijklmn";
/** 查找一串字符中子串的所在区间 **/
NSRange strRange = [str rangeOfString:@"def"]; // 用区间保存位置
NSLog(@"%ld, %ld", strRange.location, strRange.length);
NSRange strRange2 = [str rangeOfString:@"dedd"]; // 用区间保存位置
//NSLog(@"%ld, %ld", strRange2.location, strRange2.length);
NSLog(@"%d, %ld", strRange2.location, strRange2.length); // %d为-1,即没找到
}
2.NSPointd / CGPoint点-坐标
NSPointd 、 CGPoint 是一样的,但 CGPoint 跨平台。#import <Foundation/Foundation.h>
int main()
{
// 一般表示控件位置
/** 直接创建点 **/
CGPoint point1 = {0, 0}; // 定义结构体方式
CGPoint point2 = {.x = 0, .y = 0}; // 结构体方式
CGPoint point3 = NSMakePoint(0, 0); // 类方法
NSPoint point4 = CGPointMake(0, 0); // 类方法
// CGPointZero就是{0,0}
NSLog(@"%@", NSStringFromPoint(CGPointZero));
// 比较两个点的位置是否相同
BOOL bll = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));
NSLog(@"%d", bll); // 1,相同
}
3.NSSize / CGSize大小尺寸
#import <Foundation/Foundation.h>
int main()
{
// 一般表示控件尺寸
/** 直接创建Size **/
CGSize size1 = {80, 10}; // 定义结构体方式
CGSize size2 = {.width = 50, .height = 20}; // 结构体方式
CGSize size3 = NSMakeSize(50, 60); // 类方法
CGSize size4 = CGSizeMake(70, 70); // 类方法
// 判断Rect是否包含Point
BOOL booo = CGRectContainsPoint(CGRectMake(0, 0, 100, 100), CGPointMake(20, 90));
NSLog(@"%d", booo);
}
4.NSRect / CGRect区域
#import <Foundation/Foundation.h>
int main()
{
// 一般表示一块区域
/** 直接创建区域 **/
CGRect rect1 = {0, 0, 100, 50}; // 定义结构体方式(x, y, width, height)
CGRect rect2 = {CGPointMake(0, 0), CGSizeMake(100, 200)}; // 结构体方式
CGRect rect22 = {{0, 0}, {100, 200}};
CGRect rect3 = NSMakeRect(0, 0, 100, 60); // 类方法
CGRect rect4 = CGRectMake(0, 0, 40, 70); // 类方法
NSString * str = NSStringFromRect(rect4); // 转为字符串
NSLog(@"%@", str);
}
- end