美文网首页
Foundation 框架常用API

Foundation 框架常用API

作者: 风之化身呀 | 来源:发表于2018-11-08 00:03 被阅读24次

常用类

不可变:NSString、NSArray、NSDictionary
可变: NSMutableString、NSMutableArray、NSMutableDictionary、NSObject
可变和不可变的区别是对象内容的可变和不可变

基本用法

NSString

    // 创建无参数的字符串
    NSString *str2 = [NSString stringWithString:@"Jack"];
    
    // 创建带参数的字符串
    NSString *str3 = [NSString stringWithFormat:@"age is %d",10];
    
    // C字符串 转换为 OC字符串
    NSString *str4 = [NSString stringWithUTF8String:"Rose"];
    
    // 读取文件内容第一种方式:读取桌面下getWeather.xml文件里的所有内容
    NSString *str5 = [NSString stringWithContentsOfFile:@"file:///Users/apple/Desktop/getWeather.xml" encoding:NSUTF8StringEncoding error:nil];

    // NSUTF8StringEncoding 适用于使用中文的编码格式
    
    // 读取文件内容第二种方式:读取桌面下getWeather.xml文件里的所有内容
    NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/getWeather.xml"];
    NSString *str6 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

    // 写内容,第一种写入方式
    // atomically参数指写入不成功时要不要停止
    [@"Java,iOS" writeToFile:@"/Users/apple/Desktop/getWeather.xml" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    // 第二种写入方式
    NSString *content = @"iOS,Java";
    // NSURL提供了直接定义本地URL的类方法
    NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/getWeather.xml"];
    [content writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];

NSMutableString

NSString *str = [NSString stringWithFormat:@"My age is 10 "];
    NSString *str2 = [str stringByAppendingString:@"11 12"];
    NSLog(@"%@",str2);      // 打印:My age is 10 11 12
    
    NSMutableString *mutalbeStr = [NSMutableString stringWithFormat:@"My age is 10 "];
    [mutalbeStr appendString:@"11 12"]; // appendString方法没有返回值,说明是直接str字符串后面进行拼接
    NSLog(@"%@",mutalbeStr); // 打印:My age is 10 11 12

   // 删除子串:先获取要删除内容的范围,然后删除范围内的字符串
    NSRange range = [mutalbeStr rangeOfString:@"11"];
    [mutalbeStr deleteCharactersInRange:range];    
    NSLog(@"%@",mutalbeStr); // 打印:My age is 10  12

NSArray

    // 第一种方式:
    NSArray *array = [NSArray arrayWithObjects:@"Jack",nil];
    // 数组中包含了两个NSString对象 nil是用来标识数组元素结束的标识
    // 因此OC数组中不能存放空对象
    NSArray *array1 = [NSArray arrayWithObjects:@"Jack",@"Rose", nil];

    // 第二种方式:(推荐使用)
    NSArray *array2 = @[@"Jack",@"Rose"];
    // 获取数组的长度 array1.count;
    NSUInteger count = [array1 count];
    NSLog(@"%ld",count);
    // 访问数组中的对象的两种方式
    NSString *str1 = [array1 objectAtIndex:0]; // 数组中索引为1的对象,OC中提供的方法 返回:Jack
    NSString *str2 = array1[0];                // 编译器特性其实还是转为上面的形式来访问 返回:Jack

    // 遍历数组的三种方式
    // 第一种:
    for (int i = 0; i<array1.count; i++) {
        NSLog(@"%@",array1[i]); // 数组中存放的是对象可以用%@输出
        if (i ==0) {
            break;
        }
    }
    

    // 第二种:将array1数组中的每个对象拿出来赋给obj然后依次打印
    for (id obj in array1) {    // id obj 代表数组中的对象
        // 获取obj对象在数组中的索引
        NSUInteger index = [array1 indexOfObject:obj];
        NSLog(@"%ld-->%@",index,obj);
    }
    

    // 第三种:使用Block 每次从数组中遍历一个元素后就传递给block,block也相应的执行一次
    // block中的id obj对应数组中的元素,NSUInteger idx对应数组中元素的索引 BOOL用来停止遍历
    [array1 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
        NSLog(@"%ld-->%@",idx,obj);  
        // 如果索引为0 立即停止遍历
        if (idx ==0) {
            *stop = YES;
        }
    }];

NSMutableArray

    // 创建可变数组
    NSMutableArray *mutableArray = [NSMutableArray array];
    // NSMutableArray *mutalbeArray2 = @[@"张三",@"李斯"];  注意:@[]返回的是不可变NSArray数组 这样会报错
 // 为可变数组增加任意对象
    Person *person = [[Person alloc] init];    
    [mutableArray addObject:person];
    [mutableArray addObject:@"Jack"];
    [mutableArray addObject:@"John"];
    // [mutableArray addObject:10]; 数组中不可以存放基本数据类型
    // 从数组中删除指定的元素
    [mutableArray removeObject:@"John"];
    [mutableArray removeObjectAtIndex:0];
    // 将数组中的元素全部删除
    [mutableArray removeAllObjects];

NSDictionary

    // 常见创建Dictionary集合的四种方式
    // 1.创建一个空的字典集合类型
    NSDictionary *dic = [NSDictionary dictionary]; // 一旦为空 永久为空
    
    // 2.创建只有一组值的字典集合
    NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"Jack" forKey:@"name"];
    
    // 3.创建多个值的字典集合
    NSArray *keys = @[@"name",@"address",@"e-mail"];
    NSArray *values = @[@"Jack",@"北京",@"jack@163.com"];
    NSDictionary *dic3 = [NSDictionary dictionaryWithObjects:values forKeys:keys];
    
    // 4.通过值/键的方式来创建
    NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:
                          @"Jack",@"name",
                          @"北京",@"address",
                          @"jack@163.com",@"e-mail",nil];
    
    // 5.类似于数组的创建方式 (推荐使用)
    NSDictionary *dic5 = @{@"name":@"Jack",
                           @"address":@"北京",
                           @"e-mail":@"jack@163.com"};
    // 取值:根据相应的Key取出对应的值
    NSString *name = [dic1 objectForKey:@"name"]; // 返回 Jack
    // 返回键值对的个数
    NSUInteger count = dic5.count; // 返回 4

// 遍历NSDictionary数组用两种方式:
    // 第一种方式:
    // 获取字典中所有的键
    NSArray *allKeys = [dic5 allKeys]; // 获取的键在数组中是无序的
    
    for (int i = 0; i < dic5.count; i++) {
        NSString *key = allKeys[i];
        NSString *value = dic5[key];
        NSLog(@"%@-->%@",key,value);
    }
    
    // 第二种方式:将字典中的键值对传递给Block中的key和obj
    [dic5 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
        NSLog(@"%@-->%@",key,obj);
     // 遍历一次立即停止 *stop = YES;
    }];

NSMutableDictionary

NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary];
    // NSMutableDictionary *mutableDic2 = @{@"name",@"Rose",@"address",@"北京"}; 错误的写法因为右边返回的是不可变的字典
 // 为可变字典添加元素
    [mutableDic setObject:@"Rose" forKey:@"name"];
    [mutableDic setObject:@"北京" forKey:@"address"];
 // 移除
    [mutableDic removeAllObjects];
    [mutableDic removeObjectForKey:@"name"];

NSArray *friends = @[
         @{@"name":@"张三",@"phone":@"13993214321",@"address":@"北京"},
         @{@"name":@"李斯",@"phone":@"13498766789",@"address":@"上海"},
         @{@"name":@"王武",@"phone":@"15898766789",@"address":@"天津"},
         @{@"name":@"赵柳",@"phone":@"18798766789",@"address":@"南京"}];
    
    // 获取‘李斯’的通讯录信息
    NSDictionary *dic = friends[1];

相关文章

  • Foundation 框架常用API

    常用类 不可变:NSString、NSArray、NSDictionary可变: NSMutableString、...

  • Foundation框架

    Foundation框架 OC、iOS、Mac程序必备框架 包含很多常用API(应用编程接口) 包含很多头文件,若...

  • iOS-Foundation框架中常用的类

    Foundation框架中最常用的类。 Foundation框架中最我们经常用的类大致有NSString、NSAr...

  • Foundation框架学习

    Foundation框架是其他所有iOS框架的基础,Foundation框架中包含了很多开发中常用的数据类型 结构...

  • Foundation框架

    Foundation框架—字符串 一、Foundation框架中一些常用的类 字符串型: NSString:不可变...

  • 0.iOS网络相关

    网络API Core Foundation框架中的 CFNetwork :纯C的API,性能非常高,相对底层; F...

  • Mac OS X 读书第一天笔记

    一、常用Foundation框架里的类总览 Foundation类层次的根是NSObject,它(和NSOb...

  • Foundation框架常用方法

    NSArray方法 NSString 字符串的遍历 字符串的比较 字符串的截取和大小写 搜索字符串与替换字符串 方法列表

  • java字节流分析

    InputStream 常用类继承框架 OutputStream 常用类继承框架 想活用输入 / 输出 API ,...

  • iOS开发--Foundation框架

    Foundation框架介绍 什么是框架?众多功能\API的集合框架是由许多类、方法、函数、文档按照一定的逻辑组织...

网友评论

      本文标题:Foundation 框架常用API

      本文链接:https://www.haomeiwen.com/subject/qgpbxqtx.html