Foundation框架—结构体

一、基础知识

  Foundation一基础框架。框架中包含了框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础。

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

  注意:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中的是OC的。

二、常用的结构体介绍以及简单使用 (结构体不是对象)

常用的结构体

NSRange(location length) // 表示范围
NSPoint/CGPoint // 表示坐标
NSSize/CGSize // 表示大小
NSRect/CGRect(CGPint, CGSize) // 一个UI元素的位置和尺寸
1. NSRange的使用 NSRange(location, length);

    NSRange 这个结构体用来表示事物的一个范围,通常是字符串的范围或者集合里的元素范围

    location 表示该范围的起始位置  length 表示该范围内所含的元素

struct Date {
    int year;
    int month;
    int day;
};
// 使用typedef 来重新定义
typedef struct Date1 {
    int year;
    int month;
    int day;
}Date2;
void _struct() {
    // 创建一个Date类型的结构体变量,在创建的时候给变量赋值
    // 方式一
    struct Date date1 = {2015, 8, 18};
    NSLog(@"方式一:%i", date1.year);
    // 方式二
    struct Date date2 = {.year = 2015, .month = 8, .day = 19};
    NSLog(@"方式二:%i", date2.month);
    // 方式三
    Date2 date3 = {2015, 8, 18};
    NSLog(@"方式三:%i", date3.day);
}
void range() {
    // 使用NSRange 创建变量
    // 方式一 直接给成员赋值
    NSRange range;
    range.location = 7;
    range.length = 3;
    NSLog(@"location: %zi length: %zi", range.location, range.length);
    
    // 方式二 利用C语言的聚合结构赋值
    NSRange range1 = {2, 4};
    NSRange range2 = {.location = 2, .length = 4};
    NSLog(@"location1: %zi length1: %zi", range1.location, range1.length);
    NSLog(@"location2: %zi length2: %zi", range2.location, range2.length);
    
    // 方式三 实际开发中使用最多的是使用Foundation自带的快捷函数
    NSRange range3 = NSMakeRange(2, 4);
    NSLog(@"location3: %zi length3: %zi", range3.location, range3.length);
    
    // 快速打印
    NSString *str = NSStringFromRange(range);
    NSLog(@"%@", str);
}
2. NSPoint/CGPoint的使用   CGPoint 等价于 NSPoint

    主要是运用到UI处理中,用来表示点,图形绘制。。。

void point() {
    // 方式一
    CGPoint p;
    p.x = 19;
    p.y = 22;
    // 打印成字符串
    NSString *str = NSStringFromPoint(p);
    NSLog(@"str: %@", str);
    
    // 方式二
    NSPoint pp;
    pp.x = 19;
    pp.y = 22;
    // 快速创建
    pp = NSMakePoint(19, 22);
    NSString *str1 = NSStringFromPoint(pp);
    NSLog(@"str1: %@", str1);
    // 快速穿件
    pp = CGPointMake(19, 22);
    NSString *str2 = NSStringFromPoint(p);
    NSLog(@"str2: %@", str2);
    
}
3. NSSize/CGSize的使用  "表示UI元素尺寸(宽度,高度)"
// CGSize/NSSize  表示UI元素的尺寸(宽度,高度)
void size() {
    // 方式一创建
    NSSize size;
    size.width = 100;
    size.height =122;
    NSString *str = NSStringFromSize(size);
    NSLog(@"str: %@", str);
    
    // 方式二
    NSSize size1;
    size1 = NSMakeSize(10, 0);
    NSString *str1 = NSStringFromSize(size);
    NSLog(@"str1: %@", str1);
    size1 = CGSizeMake(10, 0);
    NSString *str2 = NSStringFromSize(size);
    NSLog(@"str2: %@", str2);
    
}
4. NSRect/CGRect的使用  "一个UI元素的位置和尺寸"  
void rect() {
    // 方式一
    NSRect rect;
    rect.origin.x = 10;
    rect.origin.y = 12;
    rect.size.width = 180;
    rect.size.height = 90;
    NSString *str = NSStringFromRect(rect);
    NSLog(@"str: %@", str);
    
    // 方式二
    NSRect rect1;
    rect1 = NSMakeRect(10, 10, 10, 10);
    rect1 = CGRectMake(10, 10, 10, 10);
    NSString *str2 = NSStringFromRect(rect1);
    NSLog(@"str2: %@", str2);
    
}
5. Foundation框架比较常用到的函数

foundation框架中结构体常用的函数。  注意 使用这些CGPointEqualToPoint、CGRectCotainsPoint等函数前提是添加CoreGraphics框架

BOOL result = CGPointEqualToPoint(<#CGPoint point1#>, <#CGPoint point2#>);  // 比较两个点是否相同
// 返回的值是0 假  1 真

** 导入框架: build phrase->rink(+)

** ios中的坐标是屏幕坐标 

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值