ios开发-OC-Fondation框架的学习

   今天,我学习了Foundation框架,以下是具体的学习内容:

   Foundation框架是IOS开发的基础框架,里面包含了很多数据类型:

 1)结构体

 2)枚举

 3)

 接下来从以下几个方面来学习:

.结构体的学习:分为以下几个

 1.NSRange;

 2.NSPoint;

 3.NSSize;

 4.NSRect;

 具体如下:

 1.NSRange:

    表示的时范围,里面有locationlength两个属性,用法如下:

    

    NSRange r1 = NSMakeRange(2, 4);//表示的是定义一个位置是2,长度为4的字符


    NSRange range = [str rangeOfString:@"love"];


    数据类型:NSUInteger = unsigned long

 

    如果要查找的字符不存在,会输出location=-1(常量,Nntfound), length=0;

 

 2.NSPoint:

    表示的是一个左边,里面有float类型的两个变量,xy,使用方法如下:

    

    1).使用方法:

    CGPoint p1 = NSMakePoint(10, 10);


    NSPoint p2 = CGPointMake(10, 10);//常用

 

    2).使用CGPointZero等的前提是添加CoreGraphics框架:


    原点表示方法:

        (0, 0)可以表示为: CGPpointZero = CGPointMake(0, 0);

    

    3).判断两个点是否相同:

    BOOL b = CGPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10));



 3.NSSize:

    表示的时一个有方形尺寸的元素,里面有两个float类型的变量,widthheight,使用方法如下:


    CGSize s1 = CGSizeMake(100, 50);

 

    NSSize s2 = NSMakeSize(100, 50);

 

 

 4.NSRect:

    表示的是同时具有坐标和方形尺寸的元素,里面有NSPointNSSize两个变量,使用方法如下:

    

    CGRect = CGRectMake(0, 0, 100, 50);

    

    1)查看是否包括点元素的方法:

 

    BOOL b2 = CGRectContainsPoint(CGRectMake(50, 40, 100, 50), CGPointMake(60, 45));

 

 5.将结构体转为字符串

     NSString *str = NSStringFromPoint(p1);

     

     NSString *str = NSStringFromSize(s3);

     

     NSString *str = NSStringFromRect(r1);

    

 打印:

    NSLog(@"%@", str);

.NSString/NSMutableString的学习:

 1.都表示字符串,区别是:

     NSString : 不可变字符串

     

     NSMutableString : 可变字符串

 2.字符串的创建:

     NSString *s1 = @"rose";

    

     NSString *s2 = [[NSString alloc] initWithString:@"jack"];

    

     NSString *s3 = [[NSString alloc] initWithFormat:@"age is %d", 10];

 3.oc字符串和c字符串的转换:

 

    // C字符串 --> OC字符串

        NSString *s4 = [[NSString alloc] initWithUTF8String:"jack"];

    // OC字符串 --> C字符串

        const char *cs = [s4 UTF8String];

 

    // NSUTF8StringEncoding用到中文就可以用这种编码

        NSString *s5 = [[NSString alloc] initWithContentsOfFile:@"绝对路径.文件拓展名" encoding:NSUTF8StringEncoding error:nil];


 

 .NSArray/NSMutableArray的学习:

    1.两者都能表示数组,区别是:

         NSArray :不可变数组,有顺序

         

         NSMutableArray : 可变数组,有顺序


    2.NSArray创建OC数组:

 

        NSArray *array2 = [NSArray arrayWithObject:@"jack"];


        // nil是数组元素结束的标记

        NSArray *array3 = [NSArray arrayWithObjects:@"jack", @"rose", nil];

        // [array2 count];


        //NSArray *array4 = [NSArray arrayWithObjects:@"jack", @"rose", @"4324324", nil];


        // 快速创建一个NSArray对象,只适合NSArray的创建

        NSArray *array4 = @[@"jack", @"rose", @"4324324"];

        

        // NSArray的元素个数

        NSLog(@"%ld", array3.count);

 

        // NSArray中元素的访问

        NSLog(@"%@", [array3 objectAtIndex:1]);


        //array3[1];

        NSLog(@"%@", array3[0]);


    3.NSMutable创建OC数组:

         NSMutableArray *array = [NSMutableArray arrayWithObjects:@"rose", @"jim", nil];

 

         // 添加元素

         [array addObject:[[Person alloc] init]];

         

         [array addObject:@"jack"];

         

         // 删除元素

         //[array removeAllObjects];

         

         // 删除指定的对象

         [array removeObject:@"jack"];

         [array removeObjectAtIndex:0];

         

         // 错误写法

         // [array addObject:nil];

         

         

         NSLog(@"%@", array);

         

         NSLog(@"%ld", array.count);


 .NSSet/NSMutable的学习:

    1.两者都是集合,能够存放多个OC对象,都没有顺序.

    如下列程序:

         #import <Foundation/Foundation.h>

         

         int main()

         {

         NSMutableSet *s = [NSMutableSet set];

         

         // 添加元素

         [s addObject:@"hack"];

         

         // 删除元素

         // [s removeObject:(id)];

         return 0;

         }

         

         // set的基本使用

         void test()

         {

         NSSet *s = [NSSet set];

         

         NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose", @"jack2",@"jack3",nil];

         

         // 随机拿出一个元素

         NSString *str =  [s2 anyObject];

         

         NSLog(@"%@", str);

         

         //NSLog(@"%ld", s2.count);

         }


 .NSDictionary\NSMutableDictionary(字典)的学习:

    1.特点:

     * 无序;

     * 创建出来的是一对键(key)(value);

     * 不允许有相同的key,可以有相同的value;

     * 快速创建(不可变):@{key1 : value1,  key2 : value2};

     * 快速访问元素:字典名[key];

    2.遍历字典内容:

         [dict enumerateKeysAndObjectsUsingBlock:

         ^(id key, id obj, BOOL *stop) {

         NSLog(@"%@ - %@", key, obj);

    3.NSMutableDictionary创建的对象可以进行修改:

         NSMutableDictionary *dict = [NSMutableDictionary dictionary];

         

         // 添加键值对

         [dict setObject:@"jack" forKey:@"name"];

         

         [dict setObject:@"北京" forKey:@"address"];

         

         [dict setObject:@"rose" forKey:@"name"];

 

 

 .NSNumber的学习:

    1.作用:将各种非OC对象封装成为OC对象:

    例如:

    20

    @"20";

 

    age包装成为NSNumber对象:

    int age = 100;

    @(age)  等价于[NSNumber numberWithInt:age]


 

 .NSDate的学习:

    1.作用:创建一个时间对象,之前我们都是用结构体来表示的.

    2.创建方法:

 

     // 创建一个时间对象

     NSDate *date = [NSDate date];

     // 打印出的时候是0时区的时间(北京-8区)

     NSLog(@"%@", date);

     // 比当前打印时间慢5

     NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];

 

     // 1970开始走过的秒数

     NSTimeInterval seconds = [date2 timeIntervalSince1970];



    3.日期格式化类:

        具体实现如下:

         NSDate *date = [NSDate date];

         

         // 日期格式化类

         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

         

         // y   M  d

         // m s  H24)时  h12)时

         formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

         

         NSString *str = [formatter stringFromDate:date];

         

         NSLog(@"%@", str);

总结:
Foundation框架主要掌握的就是运用各种框架提供的方法去实现一些功能,要想弄清楚还需要多多练习.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值