• OC学习笔记 常用结构体


    一般结构体创建方式

    1  struct Date
    2     {
    3         int year;
    4         int month;
    5         int days;
    6     };
    7     struct  Date d1 = {2015,4,28};
    8     struct Date d2 = {.month = 4,.days = 28,.year = 2015 };

    常用结构体函数

    1 //    NSRange(location,length); //表示范围
    2 //    NSPoint/CGPoint//表示坐标
    3 //    NSSize/CGSize//表示UI元素的尺寸
    4 //    NSRect/CGRect(CGPint CGSize)//一个UI元素的尺寸

    一、NSRange使用

    1>NSRange 查找字符串范围

    1 void test(NSString *str,NSString *name)
    2 {
    3     //查找某个字符串再str中的范围 如果找不到范围 为 0;
    4 //    NSString *str = str;
    5     NSRange range = [str rangeOfString:name];
    6     NSLog(@"loc = %ld length= %ld",range.location,range.length);
    7 }
    1 int main(){   
    2  test(@"i love oc",@"love");
    3     //输出结果是 loc = 2 length= 4
    4     test(@"i love oc", @"java");
    5     //输出结果是 loc = 9223372036854775807(转换为整数为-1USNotFound==-1) length= 0
    6     NSLog(@"%ld",NSNotFound);//  9223372036854775807
    7     NSLog(@"%d",NSNotFound);// -1
    8 }

    2>NSmakeRange

    NSRange NSMakeRange (
       NSUInteger loc,
       NSUInteger len
    );
    1     NSRange r1 = {2,4};//效率低
    2     NSRange r2 = {.location = 2, .length = 4};//不用
    3     NSRange r = NSMakeRange(2, 4);//掌握(工作中常用) 在实际开发中最常用的是使用Foundation框架自带的函数

    二、NSPoint/CGPoint的使用(表示坐标)

    开发中常用CGPoint 因为它跨平台

    1     CGPoint p1 = NSMakePoint(10, 10);
    2     NSPoint p2 = CGPointMake(10, 10);//开发中最常用
    1    CGPoint p1 = NSMakePoint(10, 10);
    2     NSPoint p2 = CGPointMake(10, 10);//开发中最常用
    3     CGPoint p3 = CGPointMake(20, 20);//可混用
    三、NSSize/CGSize的使用
    表示UI元素的尺寸 如按钮的宽和高
    
    
    1      NSSize s1 = CGSizeMake(100, 50)//宽度100高度50
    2      CGSize s2 = NSMakeSize(100, 50);
    3      CGSize s3 = CGSizeMake(200, 60);
    4      NSSize s4 = NSMakeSize(200, 60);

    四、NSRect/CGRect的使用

    一个UI元素的尺寸 (原点在左上角) 在屏幕上x/y轴坐标 元素(如按钮)所占宽高
    1     CGRect c1 = CGRectMake(0, 0,100,10);
    2     CGRect c2 = {{0,0},{100,90}};
    1     NSPoint p2 = CGPointMake(10, 10);
    2     CGSize s2 = NSMakeSize(100, 50);
    3     CGRect c3 = {p2,s2};

        CGSizeZero == CGPointMake(0, 0);//表示原点

    五 Foundation框架中一些经常用到的结构体函数

    比较两块区域是否相同  
    1    bool b =  CGRectEqualToRect(c1, c2);//c1,c2在上面
    比较两个尺寸是否相等
    1     CGSizeEqualToSize(s1, s2);
    将结构体转为字符串
    1 NSPoint p2 = CGPointMake(10, 10);
    2 NSString *str = NSStringFromPoint(p2); 

    3 NSLog(@"%@------",str);

    4//打印测试

    5 2015-04-29 08:19:52.691 01-结构体[1099:83924] {10, 10}------
    比较两个点是否相等
    1    bool b1 = CGPointEqualToPoint(CGPointMake(10, 10),CGPointMake(10, 10));
    判断这个点是否在区域范围内
    x(50-150)y(40-90)
    1   bool b2 =  CGRectContainsPoint(CGRectMake(50,40,100,50), CGPointMake(130,70));

    结果(0代表false1表示true)

    1     NSLog(@"%d-%d",b1,b2);
    2 
    3 2015-04-29 08:19:52.691 01-结构体[1099:83924] 1-1

    补充1:导入框架  Build phase->link (+)

    补充2:ios中坐标原点在左上角。

    NS开头函数是由于乔布斯将上个公司(next)框架带来

  • 相关阅读:
    【loj2639】[Tjoi2017]不勤劳的图书管理员
    【bzoj3514】Codechef MARCH14 GERALD07加强版
    BZOJ1002【FJOI2007】轮状病毒
    数论基础(附加例题)
    表达式总结
    背包
    hdu1027
    hdu1026
    hdu1025
    hdu1024
  • 原文地址:https://www.cnblogs.com/zhangdashao/p/4464838.html
Copyright © 2020-2023  润新知