zoukankan      html  css  js  c++  java
  • 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)框架带来

  • 相关阅读:
    Android 主题theme说明 摘记
    Android开发 去掉标题栏方法 摘记
    安卓项目五子棋代码详解(二)
    关于 ake sure class name exists, is public, and has an empty constructor that is public
    百度地图3.0实现图文并茂的覆盖物
    android onSaveInstanceState()及其配对方法。
    关于集成科大讯飞语音识别的 一个问题总结
    android 关于 webview 控制其它view的显示 以及更改view数据失败的问题总结
    C# 解析 json Newtonsoft果然强大,代码写的真好
    c#数据类型 与sql的对应关系 以及 取值范围
  • 原文地址:https://www.cnblogs.com/zhangdashao/p/4464838.html
Copyright © 2011-2022 走看看