【黑马程序员】Foundation框架(二)

来源:互联网 发布:微信商城网站源码php 编辑:程序博客网 时间:2024/05/19 05:31

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

一、NSURL的使用


    1、NSURL的介绍

        URL的全称是Uniform Resource Locator是互联网的标准资源地址,互联网上每个资源都有唯一的URL,它包含的消息指出资源的位置。
        基本URL包含协议、主机域名、     路径
        如:           http://www.baidu.com/images/dds.jpg
        可以简单认为:URL=协议头://主机域名/路径

        常见的URL协议头:
        1、http\https:超文本传输协议资源,网络资源
        2、ftp:文件传输协议

     2、用NSURL读写字符串

        传入完整的字符串URL创建:URLWithString方法    NSURL类方法   参数:文件的URL    返回instancetype(NSURL)类型
        通过文件路径创建(默认是file协议):fileURLWithPath方法    NSURL类方法      参数:文件路径    返回instancetype(NSURL)类型

二、NSRange的使用


    1、NSRange的介绍

        NSRange是Foundation框架中常用的结构体,也是结构体的一种别名。
        
typedef struct _NSRange{     NSUInteger location;     NSUInteger length;}NSRange
       NSRange用来表示一个范围,通常是字符串里的字符范围和数组里的元素范围        

       NSUInteger的定义:
typedef unsigned int NSInteger;typedef unsigned long NSUInteger;

      其2个成员为:
      location:表示该范围的起始位置
      length:表现该范围内的长度

    2、NSRange的创建和赋值

      1)先定义在赋值
NSRange range;range.location = 2;range.length = 3;
      
       2)定义的同时赋值
NSRange range ={1,3};NSRange range2 = {.location = 2,.length = 4};

       3)使用NSMakeRange函数
NSRange Range = NSMakeRange(3,4);

三、NSArray的使用


    1、NSArray的介绍

       NSArray的定义与注意事项
        NSArray是OC中的数组类,开发中建议尽量使用NSArray代替C语言中的数组
        只能存放任意OC对象,并且是有顺序的。不能存放非OC对象,如int\float\double\char\enum\struct等。
        它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能添加和删除元素。
        

    2、NSArray的创建方法

       1)类方法创建
             创建空的数组:array方法    NSArray类方法    无参    返回:instancetype类型(id对象类型)
             创建并赋值一个元素:arrayWithObject方法   NSArray类方法    参数:Id类型元素   返回:instancetype类型(id对象类型)
             创建并赋值多个元素:arrayWithObjects方法  NSArray类方法    参数:Id类型元素(多个)   返回:instancetype类型(id对象类型)*元素之间用“,”分割,最后用nil结束
             通过已存在数组来创建新数组:arrayWithArray方法    NSArray类方法   参数:NSArray元素    返回:instancetype类型(id对象类型)
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr1 = [NSArray array];        NSArray *arr2 = [NSArray arrayWithObject:@"a"];        NSArray *arr3 = [NSArray arrayWithObjects:@"b",@"c", nil];        NSArray *arr4 = [NSArray arrayWithArray:arr3];        NSLog(@"%@,%@,%@,%@",arr1,arr2,arr3,arr4);    }    return 0;}

       2)对象方法创建
             先开辟对象空间后用:initWithObjects方法    NSArray对象方法    参数:参数:Id类型元素(多个)   返回:instancetype类型(id对象类型)*元素之间用“,”分割,最后用nil结束
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr5 =[[NSArray alloc]initWithObjects:@"f",@"g", nil];        NSLog(@"%@",arr5);    }    return 0;}

     3、注意事项

       1)NSArray直接使用NSLog()作为字符串输出时是小括号括起来
       2)NSArray中不能存储nil,因为NSArray认为nil是数组(nil是数组元素结束的标记)。nil是0,0也是基本数据类型,不能放入NSArray
       3)NSArray *arr = [NSArray array];这样创建的数组永远都是空的,不能增加元素。

    4、NSArray常用方法

       获得数组元素的个数:count方法   NSArray对象方法    无参   返回NSUInteger类型(long int类型)
       获得指定位置的元素:objectAtIndex方法  NSArray对象方法     参数:指定位置(NSUInteger类型)   返回Id类型
       判断是否包含某元素:containsObject方法   NSArray对象方法    参数:判断的NSArray元素    返回BOOL类型
       返回最后一个元素:lastObject方法    NSArray对象方法   无参    返回Id类型
       返回第一个元素:firstObject方法   NSArray对象方法    无参    返回Id类型
       查找指定元素在数组中的位置:indexOfObject方法    NSArray对象方法     参数:指定NSArray元素   返回位置NSUInteger类型(未找到返回-1)
       在一定范围内查找指定元素的位置:indexOfObject:inRange方法   NSArray对象方法  参数:指定NSArray元素+范围NSRange类型     返回  返回位置NSUInteger类型(未找到返回-1)

    5、NSArray的简写

        [NSArray arrayWithObjects:@"a",@"b",nil];可简写为@[@"a",@"b"];
        [array objectAtIndex];可简写为array[0];

    6、NSArray的遍历方法

       1)下标遍历
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];        for (int i= 0; i<3; i++) {            NSLog(@"%@",arr[i]);        }    }    return 0;}
       2)快速遍历
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];        for (NSString *str in arr) {            NSLog(@"%@",str);        }    }    return 0;}

      3)block遍历
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];        [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {            NSLog(@"下标%ld 值%@",idx,obj);        }];    }    return 0;}

    7、NSArray读写文件

       写入文件:writeToFile:atomically方法    NSArray对象方法   参数:文件存储地址+是否原子性    返回BOOL类型
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];        [arr writeToFile:@"Users/xxxx/Desktop/array.xml" atomically:YES];    }    return 0;}

       读取文件:arrayWithContentsOfFile方法   NSArray类方法    参数:文件地址      返回NSArray类型
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {           [NSArray arrayWithContentsOfFile:@"Users/xxxx/Desktop/array.xml"];    }    return 0;}

    8、NSArray与字符串

        1)将数组元素连接成字符串:componentsJoinedByString方法  NSArray对象方法    参数:分隔符字符串    返回NSString类型
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];        NSString *str = [arr componentsJoinedByString:@"$"];        NSLog(@"%@",str);    }    return 0;}

        2)字符串分割:componentsSeparateByString方法   NSString对象方法    参数:字符串中有的分割字符        返回NSArry类型
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSString *str = @"who are you?";        NSArray *arr = [str componentsSeparatedByString:@" "];        NSLog(@"%@",arr);    }    return 0;}

三、NSMutableArray的使用


      1、NSMutableArray介绍

            NSMutableArray是NSArray的子类
            它两个的区别在于:NSArry是不可变的,一旦初始化完成后,其里面的内容是固定的,不能添加也不能删除。
                                            NSMutableArray是可变的,可以随时添加删除替换元素

      2、NSMutableArray的常用方法

            1)创建
                 创建一个空数组:array方法   NSMutableArray类方法    无参     返回NSMutableArray类型
                 创建长度为5的空数组:initWithCapacity方法    NSMutableArray对象方法     参数:数组长度     返回NSMutableArray类型
                 创建数组并赋值:arrayWithObjects方法    NSMutableArray类方法      参数:数组元素    返回NSMutableArray类型    *结尾用nil结束
                                              initWithObjects方法    NSMutableArray对象方法      参数:数组元素    返回NSMutableArray类型    *结尾用nil结束
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSMutableArray *arr1 = [NSMutableArray array];        NSMutableArray *arr2 = [[NSMutableArray alloc]initWithCapacity:3];        NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"c",@"d",nil];        NSMutableArray *arr4 = [[NSMutableArray alloc]initWithObjects:@"a",@"b", nil];        NSLog(@"%@,%@,%@,%@",arr1,arr2,arr3,arr4);    }    return 0;}
       
           2)添加
                添加一个元素:addObject方法      NSMutableArray对象方法     参数:添加的数组元素     返回void
                将其他数组中全部元素添加:addObjectsFromArray方法     NSMutableArray对象方法    参数:其他数组    返回void
                在指定位置插入一个元素:insertObject:atIndex方法    NSMutableArray对象方法    参数:添加的元素和位置(NSUInteger类型)    返回void       
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSArray *arr = [NSArray arrayWithObjects:@"asd",@"zxc", nil];        NSMutableArray *arr1 = [NSMutableArray array];        [arr1 addObject:@"a"];        [arr1 addObjectsFromArray:arr];        [arr1 insertObject:@"*" atIndex:1];        NSLog(@"%@",arr1);    }    return 0;}

           3)删除
                删除最后一个元素:removeLastObject方法      NSMutableArray对象方法    无参     返回void
                删除全部元素:removeAllObject方法      NSMutableArray对象方法      无参       返回void
                删除指定位置的元素:removeObjectAtIndex方法   NSMutableArray对象方法    参数:位置(NSUInteger类型)     返回void
                删除指定元素:removeObject方法      NSMutableArray对象方法      参数:指定元素
                删除指定范围内的所有元素:removeObjectsInRange方法    NSMutableArray对象方法      参数:范围(NSRange类型)    返回void
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"dsds",@"xxxc",@"dd", nil];        [arr1 removeLastObject];        [arr1 removeAllObjects];        NSMutableArray *arr2 = [NSMutableArray arrayWithObjects:@"rd",@"23",@"morning",@"good", nil];        [arr2 removeObjectAtIndex:1];        [arr2 removeObject:@"rd"];        NSRange range = {0,1};        [arr2 removeObjectsInRange:range];        NSLog(@"%@,%@",arr1,arr2);    }    return 0;}
                
           4)替换
                用指定元素替换指定位置元素:replaceObjectAtIndex:withObject方法    NSMutableArray对象方法     参数:指定位置+指定元素     返回void
                交换两个位置的元素:exchangeObjectAtIndex:withObjectAtIndex方法      NSMutableArray对象方法    参数:位置1+位置2       返回void 
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"dsds",@"xxxc",@"dd", nil];        [arr1 replaceObjectAtIndex:0 withObject:@"hello"];        [arr1 exchangeObjectAtIndex:2 withObjectAtIndex:1];        NSLog(@"%@",arr1);    }    return 0;}


       
0 0
原创粉丝点击