黑马程序员-Foundation的使用

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Foundation
    Foundation框架是其它所有ios框架的基础
    Foundation框架包含了很多开发中常用的数据类型:结构体、枚举、类
    
    使用Foundation需要引入语法
        #import <Foundation/Foundation.h>
    Foundation/NSObjCRuntime.h的路径:
        应用程序/Xcode.app右击显示包内容->
        /Applications/Xcode.app/Contents/Developer(开发者)/Platforms(平台)/iPhoneOS.platform/Developer(开发者)/SDKs(开发包)/iPhoneOS.sdk/System(系统)/Library(库)/Frameworks(框架)/Foundation.framework/Headers(头文件)
        NSObjCRuntime.h中含有NSLog的声明,Foundation.h含有所有Foundation框架方法的声明
        
    结构体
        NSRange(location length)   \\范围
    例:
        {1,2,3,4}
        location = 2;
        lenght =2;
        return 3,4;
    
    
    NSPoint\CGPoint(x,y)//点 点坐标信息
    NSSize\CGSize(width,hight)//尺寸信息
    NSRect\CGRect(CGPoint,CGSize)//矩形信息
    
     使用这些函数的前提是添加CoreGraphics框架
    
    //查找某个字符串在str中的范围
    NSString *str = @"a  b cc";
    //如果找不到,lenght=0,location=NSNotFound==-1
    
        NSRange range = [str rangeOfString:@"java"];
        NSLog(@"loc = %ld,lenght=%ld",range.location,range.length);
        //range.location == NSUInteger == unsigned long
        // unsigned long l = -1;
        NSLog(@"%d",NSNotFound);

main.m->

//
//  main.m
//  01结构体
//
//  Created by Whome on 14-11-13.
//  Copyright (c) 2014年 Whome. All rights reserved.
//

#import <Foundation/Foundation.h>

/*
 NSRange(location length)   \\范围
 NSPoint\CGPoint(x,y)//点 ui点坐标信息
 NSSize\CGSize(width,hight)//ui尺寸信息
 NSRect\CGRect(CGPoint,CGSize)//ui矩形信息
 */

int main(int argc, const char * argv[]) {
    
    //c 定义结构
    struct date{
        int year;
        int month;
        int day;
    };
    
    struct date d1 = {.year=2012,.month=1,.day=2};
    struct date d2 = {2011,9,7};
    
    //oc结构
    NSRange r1 = {2,4};//oc不用
    NSRange r2 = {.location = 10,.length = 30};//oc不用
    NSRange r3 = NSMakeRange(2,4);
    
    NSString *str = @"a  b cc dd ";
    
    //查找某个字符串在str中的范围
    //如果找不到,lenght=0,location=NSNotFound==-1
    
    NSRange range = [str rangeOfString:@"java"];
    NSLog(@"1 loc = %ld,lenght=%ld",range.location,range.length);
    NSRange range2 = [str rangeOfString:@"a"];
    NSLog(@"2 loc = %ld,lenght=%ld",range2.location,range2.length);
    
    //range.location == NSUInteger == unsigned long
    // unsigned long l = -1;
    NSLog(@"%ld",NSNotFound);
    
    //结构体 ui点
    CGPoint p1 = NSMakePoint(100,20);
    NSPoint p2 = CGPointMake(20,20);
    
    //ui尺寸
    NSSize s1 = CGSizeMake(100,50);
    NSSize s2 = NSMakeSize(100, 50);
    CGSize s3 = NSMakeSize(200, 50);
    
    
    //矩形
    CGRect rect1 = CGRectMake(0, 0, 100,50);
    //rect1 在第一次初始化之后无再再初始化。。。
    //rect1 = {
  {8,10},{100,50}};
    //rect1 = {p1,s1};
    //矩形的其方赋值方式
    CGRect rect2 = {
  {8,10},{100,50}};
    CGRect rect3 = {p1,s1};
    CGRect rect4 = {CGPointZero,CGSizeMake(100, 50)};

    
    
    NSLog(@"x=%f,y=%f,widht=%f,height=%f",rect1.origin.x,rect1.origin.y,rect1.size.width,rect1.size.height);
    //将结构体转成字符串
    NSLog(@"p1:%@" , NSStringFromPoint(p1));
    NSLog(@"p2:%@" , NSStringFromPoint(p2));
    NSLog(@"s1:%@" , NSStringFromSize(s1));
    NSLog(@"s2:%@" , NSStringFromSize(s2));
    NSLog(@"s3:%@" , NSStringFromSize(s3));
    NSLog(@"rect1:%@" , NSStringFromRect(rect1));
    
    //
    
    
    //相等
    //CGPointZero == CGPointMake(0, 0);
    //CGSizeZero ==CGSizeMake(0, 0);
    //CGRectZero == {
  {0, 0}, {0, 0}};
    
    //比较两个点是否相同 (x,y)
    NSLog(@"比较两个点是否相同 (x,y):%d" , CGPointEqualToPoint(CGPointMake(0, 0), CGPointZero));
    
    //比较尺寸是否相同 (widht,height)
    NSLog(@"比较尺寸是否相同 (widht,height):%d" , CGSizeEqualToSize(CGSizeMake(0, 0), CGSizeZero));
    
    //比较矩形是否相同 (CGPoint,CGSize)
    //rect直接使用无效,
    //        NSLog(@"比较矩形是否相同 (widht,height):%d" , {CGPointZero,CGSizeZero} , CGRectZero));
    CGRect rect5 = {CGPointZero,CGSizeZero};
    
    NSLog(@"比较矩形是否相同 (widht,height):%d" ,  CGRectEqualToRect(rect5, CGRectZero));
    CGRect rect6 = {
  {10,20},{10,10}};
    
    //矩形框是否包含点
    NSLog(@"矩形框是否包含点 {x:10-20,y:20-30}  :  {x=20,y=20}:%d" , CGRectContainsPoint(rect6, CGPointMake(20,20)));
    //矩形框是否包含矩形框
    NSLog(@"矩形框是否包含矩形框 {x:10-20,y:20-30}  : {x:11-16,y:22-37} :%d" , CGRectContainsRect(CGRectMake(10, 20, 10, 10), CGRectMake(11, 22, 5, 15)));
    return 0;
}

//实现一个函数,返回一个ui矩形
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;
}



控制台:

2014-11-13 22:25:52.248 01结构体[660:303] 1 loc = 9223372036854775807,lenght=0
2014-11-13 22:25:52.251 01结构体[660:303] 2 loc = 0,lenght=1
2014-11-13 22:25:52.252 01结构体[660:303] 9223372036854775807
2014-11-13 22:25:52.253 01结构体[660:303] x=0.000000,y=0.000000,widht=100.000000,height=50.000000
2014-11-13 22:25:52.254 01结构体[660:303] p1:{100, 20}
2014-11-13 22:25:52.254 01结构体[660:303] p2:{20, 20}
2014-11-13 22:25:52.255 01结构体[660:303] s1:{100, 50}
2014-11-13 22:25:52.256 01结构体[660:303] s2:{100, 50}
2014-11-13 22:25:52.257 01结构体[660:303] s3:{200, 50}
2014-11-13 22:25:52.258 01结构体[660:303] rect1:{ {0, 0}, {100, 50}}
2014-11-13 22:25:52.259 01结构体[660:303] 比较两个点是否相同 (x,y):1
2014-11-13 22:25:52.260 01结构体[660:303] 比较尺寸是否相同 (widht,height):1
2014-11-13 22:25:52.260 01结构体[660:303] 比较矩形是否相同 (widht,height):1
2014-11-13 22:25:52.261 01结构体[660:303] 矩形框是否包含点 {x:10-20,y:20-30}  :  {x=20,y=20}:0
2014-11-13 22:25:52.262 01结构体[660:303] 矩形框是否包含矩形框 {x:10-20,y:20-30}  : {x:11-16,y:22-37} :0
Program ended with exit code: 0


Too few Arguments to function call,expected 4,have 2


字符串
    NSString :不可变字符串
    NSMutable
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值