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)框架带来

  • 相关阅读:
    Balance的数学思想构造辅助函数
    1663. Smallest String With A Given Numeric Value (M)
    1680. Concatenation of Consecutive Binary Numbers (M)
    1631. Path With Minimum Effort (M)
    1437. Check If All 1's Are at Least Length K Places Away (E)
    1329. Sort the Matrix Diagonally (M)
    1657. Determine if Two Strings Are Close (M)
    1673. Find the Most Competitive Subsequence (M)
    1641. Count Sorted Vowel Strings (M)
    1679. Max Number of K-Sum Pairs (M)
  • 原文地址:https://www.cnblogs.com/zhangdashao/p/4464838.html
Copyright © 2011-2022 走看看