C23_OC13-Foundation内置的常用结构体

这些都是 typedef struct XXX 定义的。可能需要添加 CoreGraphics 框架。

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值