提示:  这篇博文主要介绍了Foundation框架中一些类的使用方法,都是以代码方式展示的,可能会比较乱,但都是些常用的方法,这些方法常用自然就会记住所以不用纠结,注意主要记方法的第一个单词,单词不认识的话可以记前三个字母,再配合提示查找

------------------------------------------------------------------------------------------------------------------ 

NSURL简介

什么是URL?

URL的全称是Uniform Resource Locator(统一资源定位符) URL是互联网上标准资源的地址 互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置 根据一个URL就能找到唯一的一个资源

URL的格式?

基本URL包含协议、主机域名(服务器名称\IP地址)、路径

可以简单认为: URL == 协议头://主机域名/路径

例如:http://www.baidu.com/123.jpg

常见的URL协议头(URL类型)

http\https :超文本传输协议资源, 网络资源

在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更 加安全。

Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http 的连接很简单,是无状态的

https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全

ftp :文件传输协议 

// NSURL OC提供了一个URL处理的一个类
        // http
        // https 加密
        // ftp://
        // file:// 本地文件
        // NSURL 写入文件
        // 1)通过 URLWithString 构建一个NSURL
        // URLWithString  可以构建本地路径的URL
        // 可以构建路径,调用手机系统的程序
        // 打电话
        NSURL *url = [NSURL URLWithString:@"tel://10086"];
        // 发短信
        NSURL *url = [NSURL URLWithString:@"sms://10086"];
        // 保存文件到本地
        NSURL *url = [NSURL URLWithString:@"file://地址"];
        // 将字符串写入本地
        NSString *str = @"xxxxx";
       BOOL isOk = [str writeToURL:<#(NSURL *)#> atomically:<#(BOOL)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>];
        // 第一个参数文件路径 第二个参数是否利用原子性 第三个编码标准NSUTF8StringEncoding 最后一个错误信息
        // 一般写入文件都要进行判断是否写入成功
        NSError *error;
        if (isOk) {
            NSLog(@"写入成功");
        } else {
            NSLog(@"%@",&error);
        }
 NSURL的一些用法

NSString

// 快速创建字符串
    NSString *str = @"xxxx";
    // 字符串写入文本
    BOOL isOk = [str writeToFile:@"/User/Apple/Desktop/1.tex" atomically:YES encoding:NSUTF8StringEncoding error:nil];
 

    NSString *str1 = @"abc";   // a 97
    NSString *str2 = @"abc";   // A 65
    
    //取出每个字符的ASCII码值 ,比较ASCII码值大小
    //compare方法比较大小
    //compare 默认的区分大小写的
    //compare 这个函数,不能增加条件
    //        NSComparisonResult result = [str1 compare:str2];
    
    //比较的时候,不区分大小写,参考字符的个数
    NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];
    //
    switch (result) {
        case NSOrderedAscending:
            NSLog(@"str1 < str2 升序");
            break;
            
        case NSOrderedDescending:
            NSLog(@"str1 > str2 降序");
            break;
            
        case NSOrderedSame:
            NSLog(@"str1 == str2 ");
            break;
            
        default:
            break;
    }

//地址的比较
        // "==" 不能够判断字符串是否相等的
        
        //判断字符串内容真正是否相等,使用是
        //isEqualToString:
        //注意:他是区分大小写的
        
        if ([str1 isEqualToString:str3]) {
            NSLog(@"相等");
        }else{
        
         NSLog(@"不相等");
        }

 /*
     检测字符串的前缀和后缀
     */

    NSString *url = @"https://www.baidu.com";
    
    //如何检测这个字符串是否是一个网址
    //http://    https://
    // 检测一个字符串的前缀是否以 http://  开头  或者 https:// 开头
    // [str hasPrefix:@"要检测的内容"];
    
    if([url hasPrefix:@"http://"]||[url hasPrefix:@"https://"]){
        
        NSLog(@"是一个网址");
    }else{
        
        NSLog(@"这不是一个网址");
    }
    
    //检测字符串的后缀
    // xxxx.jpg    判断 字符串的后缀是否是".jpg"
    // xxxx.png
    // xxxx.jpeg
    // xxxx.gif
    NSString *imgName = @"xxxxx.doc";
    // [str hasSuffix:@"带检测的后缀"]
    if([imgName hasSuffix:@".jpg"]||[imgName hasSuffix:@".png"]||[imgName hasSuffix:@".jpeg"]||[imgName hasSuffix:@".gif"]){
        
        NSLog(@"是一个图片");
    }else{
        
        NSLog(@"这不是一个图片");
    }


//字符串的查找
        // 查找某个字符串在另外一个字符串中首次出现的位置
        //     0123456789
        //1  @"asdaiosffsdafiosasdfsffitcastasdfasd"
        //2  @"ios"
        //   4   3
        
        //  1 rangOfString 2
        NSString *str1 =@"asdaiosffsdafiosasdfsffitcastasdfasd";
        NSString *str2 =@"cjk";
        // 字符串查找
        // 查找2 在 1中首次出现的位置
        // 如果查找到了,返回2在1中的位置和长度
        // 如果查找不到,返回的信息:
        //            location   特别大的数(NSNotFound) 最大的long类型的数
        //            length     0
        // range 结构体变量  NSRange 结构别名
       NSRange range =  [str1 rangeOfString:str2];
        
        //判断是否查找到了
        if(range.location!=NSNotFound){
        //range.location 表示字符串首次出现的位置
        //range.length 字符串出现的长度(实质上就是子字符串的长度)
        NSLog(@"%lu,%lu",range.location,range.length);
        }else{
        
            NSLog(@"在%@中没有找到这个字符串%@",str1,str2);
        }


// 字符串的截取
    NSString *str = @"http://www.baidu.com";
    
    //1) 从xx位置开始,到最后结束(包含xx这个位置的字符)
    NSString *str1 = [str substringFromIndex:5];
    NSLog(@"str1 = %@",str1);
    
    
    //2) 从开始位置,到xx位置结束(不包含xx这个位置)
    NSString *str2 = [str substringToIndex:5];
    NSLog(@"str2 = %@",str2);
    
    
    //3) 截取一个范围 range
    NSRange r1 = {3,4};
    NSString *str3 = [str substringWithRange:r1];
    NSLog(@"str3 = %@",str3);



        //字符串的替换
        // @"asdfsdafasdfdasdfsa"  ----> a 替换成 "*"
        // @" asdfasfd asdfsadf asdf asdfas asdf asdf asdfa"
        
        NSString *str =@"asdfsdafasdfdasdfsa";
        
//        str stringByReplacingOccurrencesOfString:@"源字符串中的内容" withString:@"要替换成新的内容"
        //把a替换成 *
        NSString *newStr = [str stringByReplacingOccurrencesOfString:@"a" withString:@"*"];
        NSLog(@"newStr = %@",newStr);
        
        // 把空格给去掉
        str =@" asdfasfd asdfsadf asdf asdfas asdf asdf asdfa";
        newStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
         NSLog(@"newStr = %@",newStr);

// 字符串转各种数值
    NSString *str = @"11";
    int a = [str intValue];
    NSString *str1 = @"12.21";
    double b = [str1 doubleValue];
    NSString *str2 = @"12.12f";
    float c = [str2 floatValue];

        //OC的字符串和 C的字符串互相转换问题
        // char*  NSString
        //1) C---->OC对象
        
        char *s = "zhangsanfeng";
        printf("%s\n",s);
        
        //思路:创建一个OC的字符串对象,用C语言的字符串创建
        NSString *str = [NSString stringWithUTF8String:s];
        NSLog(@"str = %@",str);
        
        //2) OC对象 --> C的字符串
        NSString *str2 = @"zbz";
        // 把str2 转 C的字符串
        const char *s1 = [str2 UTF8String];
        printf("s1 = %s\n",s1);
NSString的一些用法

NSRange

// NSRange的定义
typedef struct _NSRange {
    NSUInteger location; // 位置
    NSUInteger length;   // 从该位置算起的长度
} NSRange;

NSMutableString

        //  可变的字符串
        NSMutableString *str2 = [NSMutableString stringWithFormat:@"Jack"];
        // 在Jack后面加上&Rose
        [str2 appendString:@"&Rose"];

 
    NSMutableString *str = [NSMutableString string];
    
    //1) appendFormat 格式化的添加字符串
    [str appendFormat:@"http://www.baidu.com/%d",100];
    
    //str http://www.baidu.com/100
    NSLog(@"%@",str);
    
    //2) 删除字符串一部分内容
    [str deleteCharactersInRange:NSMakeRange(3, 4)];
    NSLog(@"%@",str);
    //3) 插入一个字符串
    [str insertString:@"p://" atIndex:3];
    NSLog(@"%@",str);
    
    //4) 替换字符串的一部分内容
    [str replaceCharactersInRange:NSMakeRange(11, 5) withString:@"xxxxx"];
    NSLog(@"%@",str);

//  注意不能这么写
      NSMutableString *str = @"abc";
 NSMutableString的一些用法

NSArray

//NSArray特点:
        // 一旦创建成功,内容不可改变
        // 只能存放OC对象
        
        // 1)创建一个空数组
        NSArray *arr1 = [NSArray array];

        // 2)创建数组,只有一个元素
        NSArray *arr2 = [NSArray arrayWithObject:@"1"];

        // 3)创建数组,有多个元素
        // nil 表示数组赋值结束
        // 常见写法
        NSArray *arr3 = [NSArray arrayWithObjects:@"one",@"two",@1, nil];
                        NSLog(@"arr3 = %@",arr3);
        // 4)调用对象方法,创建数组
        // nil Nil NULL  NSNULL
        NSArray *arr4 = [[NSArray alloc] initWithObjects:@"three",[NSNull null],@"four", nil];
                        NSLog(@"arr4 = %@",arr4);
        // 5)用一个数组可以创建另外一个数组
        NSArray *arr5 = [NSArray arrayWithArray:arr3];
                        NSLog(@"arr5 = %@",arr5);


  // 用简化的方式,来定义和访问数组元素
        //1)用简化的方式,定义数组
        //格式: @[ 数组元素 ]
        NSArray *arr = @[@"1",@"one",@"3",@4,@"ONE"];

// 数组的常见的方法
    NSArray *arr3 = [NSArray arrayWithObjects:@"one",@"two",@1,@"three", nil];
    NSLog(@"arr3 = %@",arr3);
    
    // 1)获取数组的长度  count获取数组的元素的个数
    NSLog(@"%ld",arr3.count);
    
    // 2)根据下标,获取下标对应的对象
    NSLog(@"%@",[arr3 objectAtIndex:3]);
    
    // 3)返回元素的下标
    NSUInteger loc = [arr3 indexOfObject:@"three"];
    NSLog(@"%ld",loc);
    
    // 4)数组中是否包含了某个元素
    if([arr3 containsObject:@"four"]){
        
        NSLog(@"包含此元素");
        
    }else{
        
        NSLog(@"不包含");
    }

   // 定义一个数组
        NSArray *arr = @[@"one",@"two",@"three",@"four"];
        
        // 对数组进行遍历
        
        //1) 普通的方式,通过下标访问
        for (int i=0; i<arr.count; i++) {
            NSLog(@"-> %@",arr[i]);
        }
        
        //2) 快速枚举法 for循环的增强形式
        for (NSString * str in arr) {
             NSLog(@"---> %@",str);
        }
        
        //3) 使用block的方式,进行访问
        //                               数组元素            元素下标     是否停止
        //stop:YES  会停止, stop:NO 不会停止
        [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            
            if(idx == 2){
            
                *stop = YES;  //停止  // break;
                
            }else{
            
               NSLog(@"idx = %ld,obj = %@",idx,obj);
            }
            
            
        }];


        // 定义一个数组
        NSArray *arr = @[@1,@2,@3,@4];
        
        // 1)把数组中的元素用 "-" 连接起来
        //  [数组 componentsJoinedByString @"分隔符"];
        // 1-2-3-4
        NSString *str = [arr componentsJoinedByString:@"-"];
        NSLog(@"str = %@",str);
        
        
        
        //2) 给一个字符串,分割成一个数组
        // 400-800-12580   //取得 400    12580    800
        NSString *str2 = @"400-800-12580";
        NSArray *arr2 = [str2 componentsSeparatedByString:@"-"];
        NSLog(@"%@",[arr2 firstObject]);
        NSLog(@"%@",[arr2 lastObject]);
        NSLog(@"%@",arr2[1]);
        
        str2 = @"400-800-12580#400-888-11200";
        NSArray *arr3 = [str2 componentsSeparatedByString:@"#"];
        NSLog(@"arr3 = %@",arr3);
        
        // 第一个电话的每一部分
        NSArray *arr4 =  [[arr3 firstObject] componentsSeparatedByString:@"-"];
        NSLog(@"arr4 = %@",arr4);
        
        NSArray *arr5 =  [[arr3 lastObject] componentsSeparatedByString:@"-"];
        NSLog(@"arr5 = %@",arr5);
 NSArray的一些用法

相关文章: