NSRange,NSPoint,NSSize,NSRect(基础)

//
//  main.m
//  test1
//
//  Created by mac on 15/4/24.
//  Copyright (c) 2015年 mac. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        /*
         常用结构体:
         NSRange(location,length)
         NSPoint/CGPoint
         NSSize/CGSize
         NSRect/CGRect
         */
        
        
        //---------------------------------struct
        typedef struct date{
            int year;
            int month;
            int day;
        } Date;
        
        Date d = {2011,4,5};
        //赋值顺序可以改变,一目了然
        Date d2 ={.year = 234,.day = 243,.month = 34};
        
        /*
         Declaration:
         typedef struct _NSRange {
             NSUInteger location;
             NSUInteger length;
         } NSRange;
        */
        //---------------------------------Range
        NSRange r1 = {2,5};//不用
        NSRange r2 = {.location = 234,.length = 34};//不用
        NSRange r3 = NSMakeRange(34, 34);//最常用
        
        //查找木个字符窜在str中的范围
        //location下标从0开始
        NSString *str4 = @"i love you";
        NSRange range = [str4 rangeOfString:@"ve 0"];
        NSLog(@"loc = %ld, length = %ld",range.location,range.length);
        
        //如果找不到,length= 0,location = NSNotFound = -1
        NSRange range2 = [str4 rangeOfString:@"gg"];
        //range2.location的类型为NSInteger == unsigned long
        //location使用ld输出为9223372036854775807
        NSLog(@"length = %ld,location = %ld\n", range2.location,range2.length);
        //location使用%d输出为-1
        NSLog(@"length = %d,location = %d", range2.location,range2.length);
        //-1
        NSLog(@"%d",NSNotFound);
        
        
        
        //------------------------------------Point
        
        /*
         Declaration:
         struct CGPoint {
             CGFloat x;
             CGFloat y;
         };
         typedef struct CGPoint CGPoint;
         */
        
        CGPoint p1 = NSMakePoint(23, 43);
        CGPoint p2 = CGPointMake(3, 34);
        
        //------------------------------------Size
        
        /*
         Declaration:
         struct CGSize {
             CGFloat width;
             CGFloat height;
         };
         typedef struct CGSize CGSize;
         */
        
        CGSize s1 = CGSizeMake(43, 4);
        CGSize s2 = NSMakeSize(34, 34);
        
        //-------------------------------------Rect
        
        /*
         Declaration:
         struct CGRect {
             CGPoint origin;
             CGSize size;
         };
         typedef struct CGRect CGRect;
         */
        
        CGRect re1 = CGRectMake(34, 34, 43, 5);
        CGRect re2 = NSMakeRect(34, 24, 34, 53);
        
        //第一个参数是一个点,第二个是宽高范围
        CGRect re3 = {p1,s1};
        CGRect re4 = {{0,0},{24,65}};
    
        
        //--------------------------------------
        //NextStep公司推出的Foundation框架,函数以NS开头
        //使用前提添加CoreGraphics框架
        //一些CG方法依赖另一个框架:选中工程项目--TARGETS--Build Phases--Link Binary Libraries--添加CoreGraphics frameWor
        
        
        //比较点是否相等
        BOOL isEaual = CGPointEqualToPoint(p1, p2);
        //CGSizeEqualToSize(<#CGSize size1#>, <#CGSize size2#>)
        //CGRectEqualToRect(<#CGRect rect1#>, <#CGRect rect2#>)
        NSLog(@"%d",isEaual);
        
        
        //CGPointZero == CGPointMake(0, 0);
        //CGSizeZero ==CGSizeMake(0, 0);
        //CGRectZero == CGRectMake(0, 0, 0, 0);

        //判断一个点是否在一个矩形框里面
        //CGRectContainsPoint(<#CGRect rect#>, <#CGPoint point#>)
        
       
        //打印结构体
        NSLog(@"x = %f, y = %f , width = %f, heigt = %f"
              ,re1.origin.x, re1.origin.y,re1.size.width,re1.size.height
              );
        //调用库方法,先转为字符串对象,再打印
        NSString *str = NSStringFromPoint(p1);
        NSString *str1 = NSStringFromSize(s1);
        NSString *str2 = NSStringFromRect(re1);
        NSString *str3 = NSStringFromRange(r1);
        NSLog(@"%@ \n%@\n%@\n%@\n",str,str1,str2,str3);
    
        //自定义命名函数
        //-(CGRect) myRect(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
        //{
        //    CGRect rect;
        //    rect.origin.x = x;
        //    rect.origin.y = y;
        //    rect.size.width = width;
        //    rect.size.height = height;
        //
        //    return rect;
        //}
    
    }
    
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值