在这里我要说一下,ios开发的知识点都偏于基础,我只记录了一些基础的知识点,并进行了扩展,适合入门的朋友:
【IOS初学者】UITableView与自定义UITableViewCell
【IOS初学者】bundle知识点总结
【IOS开发初学者】UINavigationController详解


NSArray

初始化

   //1)创建一个空数组NSArray *arr1 = [NSArray array];//创建数组,只有一个元素NSArray *arr2 = [NSArray arrayWithObject:@"aaa"];//创建数组,有多个元素// nil 表示数组赋值结束NSArray *arr3 = [NSArray arrayWithObjects:@"aaa",@"bbb", nil];//调用对象方法,创建数组NSArray *arr4 = [[NSArray alloc] initWithObjects:@"aaa",@"bbb", nil];//用一个数组可以创建另外一个数组NSArray *arr5 = [NSArray arrayWithArray:arr3];//使用@NSArray *arr6 = @[@"aaa",@"bbb",@"ccc",@"ddd"];复制代码

常用方法

    //获取数组的长度NSLog(@"%ld",arr3.count);//根据下标,获取下标对应的对象NSLog(@"%@",[arr3 objectAtIndex:1]);  NSLog(@"%@",arr3[1]);//返回元素的下标NSUInteger loc = [arr3 indexOfObject:@"bbb"];NSLog(@"%ld",loc);//数组中是否包含了某个元素if([arr3 containsObject:@"gggg"]){     NSLog(@"包含此元素");}else{NSLog(@"不包含");}NSLog(@"arr5 = %@",arr5);复制代码

对应log:

2017-02-24 09:35:12.836 TestArray[7023:601929] 2
2017-02-24 09:35:12.837 TestArray[7023:601929] bbb
2017-02-24 09:35:12.837 TestArray[7023:601929] bbb
2017-02-24 09:35:12.837 TestArray[7023:601929] 1
2017-02-24 09:35:12.837 TestArray[7023:601929] 不包含
2017-02-24 09:35:12.837 TestArray[7023:601929] arr5 = (aaa,bbb
)复制代码

遍历

   //普通的方式,通过下标访问for (int i=0; i<arr3.count; i++) {NSLog(@"-> %@",arr3[i]);}// 快速枚举法 for循环的增强形式for (NSString * str in arr3) {NSLog(@"---> %@",str);}//使用block的方式,进行访问[arr3 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {if(idx == 2){*stop = YES;  //停止}else{NSLog(@"idx = %ld,obj = %@",idx,obj);}}];复制代码

打印log如下:

2017-02-24 09:46:33.215 TestArray[7047:609202] -> aaa
2017-02-24 09:46:33.215 TestArray[7047:609202] -> bbb
2017-02-24 09:46:33.215 TestArray[7047:609202] ---> aaa
2017-02-24 09:46:33.215 TestArray[7047:609202] ---> bbb
2017-02-24 09:46:33.215 TestArray[7047:609202] idx = 0,obj = aaa
2017-02-24 09:46:33.215 TestArray[7047:609202] idx = 1,obj = bbb
Program ended with exit code: 0复制代码

读写

 NSArray *array = [NSArray     arrayWithObjects:@"one",@"zbz",@"cgx",@"sb",@"cjk",@"senni", nil];BOOL isWrite =  [array writeToFile:@"/Users/xxxx/Desktop/arr.xml" atomically:YES];复制代码
 NSArray *readArr = [NSArray arrayWithContentsOfFile:@"/Users/xxxx/Desktop/arr.xml"];复制代码

NSArray与字符串

  • 数组拼接字符串
 NSArray *arr6 = @[@"aaa",@"bbb",@"ccc",@"ddd"];NSString *str = [arr6 componentsJoinedByString:@"-"];NSLog(@"str = %@",str);复制代码
  • 字符串拆分为数组
NSArray *arr7 = [str componentsSeparatedByString:@"-"];NSLog(@"%@",[arr7 firstObject]);NSLog(@"%@",[arr7 lastObject]);NSLog(@"%@",arr7[1]);复制代码

看下打印log:

2017-02-24 09:58:04.852 TestArray[7107:619117] str = aaa-bbb-ccc-ddd
2017-02-24 09:58:04.852 TestArray[7107:619117] aaa
2017-02-24 09:58:04.853 TestArray[7107:619117] ddd
2017-02-24 09:58:04.853 TestArray[7107:619117] bbb
Program ended with exit code: 0复制代码

NSMutableArray

初始化

  NSMutableArray *arr1 = [NSMutableArray array];//创建的时候初始化一个元素NSMutableArray *arr2 = [NSMutableArray arrayWithObject:@"aaa"];//创建数组的时候,初始化多个元素NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"bbb",@"ccc",@"ddd",nil];//创建一个数组,并且指定长度,NSMutableArray *arr4 = [NSMutableArray arrayWithCapacity:5];复制代码

操作

  • 添加

    [arr1 addObject:@"ccc"];
    [arr1 insertObject:@"ddd" atIndex:0];复制代码
  • 删除

    /删除指定元素
    [arr1 removeObject:@"aaa"];
    //根据角标删除元素
    [arr1 removeObjectAtIndex:1];
    //删除所有元素
    [arr1 removeAllObjects];复制代码
  • 修改

    [arr3 replaceObjectAtIndex:1 withObject:@"aaa"];
    arr3[1] = @"ccc";复制代码
  • 查找
    BOOL isSearch = [arr3 containsObject:@"ddd"];
    NSLog(@"%d",isSearch);复制代码
  • 交换
    NSMutableArray *arr5 =[NSMutableArray arrayWithObjects:@1,@2,@3,@4,@5, nil];
    [arr5 exchangeObjectAtIndex:0 withObjectAtIndex:4];
    NSLog(@"%@",arr5);复制代码

    遍历

    NSMutableArray的遍历可以使用NSArray的方式进行遍历

NSDictionary

创建

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @"12345678", @"phone", @"天朝", @"address", nil];NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};复制代码

获取元素

[dict objectForKey:@"name”];
dict[@"name”];复制代码

遍历

   NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};for (NSString *key in dict) {NSLog(@"key = %@, value = %@", key, dict[key]);}复制代码

  [dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *obj, BOOL *stop) {NSLog(@"key = %@, value = %@", key, obj);}];复制代码

读写

  • NSDictionary *newDict = [NSDictionary dictionaryWithContentsOfFile:@"/Users/LNJ/Desktop/dict.plist"];NSLog(@"newDict = %@", newDict);复制代码
  • NSDictionary *dict = @{@"name":@"lnj", @"phone":@"12345678", @"address":@"天朝"};BOOL flag = [dict writeToFile:@"/Users/LNJ/Desktop/dict.plist" atomically:YES];NSLog(@"flag = %i", flag);复制代码

NSMutableDictionary

初始化

NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"key1",@"v2",@"key2",nil];NSMutableDictionary *dict1 = [NSMutableDictionary dictionary]; NSMutableDictionary *dict2 = [NSMutableDictionary dictionaryWithCapacity:3];复制代码

添加元素

[dic2 addEntriesFromDictionary:dic3];
[dic2 setValue:@"value3" forKey:@"key3"];复制代码

删除元素

//删除指定key
[dic1 removeObjectForKey@"key1"];
//删除指定key数组
NSArray *array = [NSArray arrayWithObjects:@"key1", nil];
[dic2 removeObjectsForKeys:array];
//移除字典所有对象
[dic1 removeAllObjects];复制代码

修改元素

 [dict1 setObject:@"zhaosi" forKey:@"ls"];//简写形式dict1[@"ls"] = @"xxxxx";NSLog(@"%@",dict1);复制代码

遍历

 NSMutableDictionary *dictionary3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value2",@"key2",@"value3",@"key3",@"value4",@"key4",@"value5",@"key5",@"value6",@"key6", nil];for (id key in dictionary3) {id obj = [dictionary3 objectForKey:key];NSLog(@"快速枚举--->obj= %@",obj);}//一般枚举NSArray *keys = [dictionary3 allKeys];float length = [keys count];for (int i = 0; i < length; i ++) {id key = [keys objectAtIndex:i];id obj = [dictionary3 objectForKey:key];NSLog(@"一般枚举--->%@",obj);}//通过枚举类枚举NSEnumerator *enumerator3 = [dictionary3 keyEnumerator];id key = [enumerator3 nextObject];while (key) {id obj = [dictionary3 objectForKey:key];NSLog(@"通过枚举类枚举--->%@",obj);key = [enumerator3 nextObject];}复制代码

【IOS初学者】数组与字典相关推荐

  1. iOS开发:沙盒机制以及利用沙盒存储字符串、数组、字典等数据

    iOS开发:沙盒机制以及利用沙盒存储字符串.数组.字典等数据 1.初识沙盒:(1).存储在内存中的数据,程序关闭,内存释放,数据就会丢失,这种数据是临时的.要想数据永久保存,将数据保存成文件,存储到程 ...

  2. ios 数组中的字典排序_利用数组和字典,实现按指定规则的排序

    大家好,今日我们继续讲解数组与字典解决方案,今日讲解第47讲:利用字典和数组,实现按指定规则的排序.随着字典讲解的深入,我们发现字典真的很神奇,在VBA代码中,给人以十分清爽的感觉,在这套数组与字典解 ...

  3. vba ado效率低吗_VBA数组与字典,数据单条件匹配之方法

    浮躁的心静下来,静定"空"心,去感悟真实的时间,静下心,常存感恩之心,做善事,一生无愧.怀平常心,做平常事,日夜安宁.人之欲望不止,一山还比一山高,岂能如愿?看淡纷争,看轻得失,心 ...

  4. OC基础第四讲--字符串、数组、字典、集合的常用方法

    OC基础第四讲--字符串.数组.字典.集合的常用方法 字符串.数组.字典.集合有可变和不可变之分.以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值:而可变字符串调用相应地方法后, ...

  5. List数组,string数组,Dictionary字典三种contain方法的查询速度

    在生成随机不重复数时要判断生成的数是否已生成过,这时就要和原来生成的数进行比较是否有重复,有以下三种方法 1. list数组采用contains()方法 2.string数组采用contains()方 ...

  6. Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from it

    Pandas中兼并数组和字典功能的Series 2013-03-24 11:24:00 分类: Python/Ruby In [2]: # 这段代码用于并排显示多个Series对象 from iter ...

  7. tp5数组为什么要中括号_VBA数组与字典解决方案第7讲:为什么要采用数组公式(一)...

    VBA数组与字典解决方案第7讲:为什么要采用数组公式(一) 今日继续讲解VBA数组与字典解决方案第7讲,在前几讲的数组应用中我们深入地讲解了工作表数组和数组公式,以及数组维数扩展的意义.那么,有的朋友 ...

  8. vba 数组赋值_VBA数组与字典解决方案第18讲:VBA中静态数组的定义及创建

    大家好,我们今日继续讲解VBA数组与字典解决方案,今日讲解第18讲:VBA数组如何定义,又该如何创建呢? 从这一讲开始,我们开始进入VBA数组阶段,VBA数组和工作表数组有着不同的意义,在很大程度上, ...

  9. 数组字典_VBA数组与字典解决方案第1讲:函数,公式,数组,数组公式的概念...

    各位好,从今日开始,在平台上我将推出VBA解决方案系列丛书的第三部:VBA数组与字典解决方案,这套书从工作表数组开始讲解,逐渐过渡到VBA数组和VBA字典,在这部教程中,大家会看到VBA数组.字典在各 ...

最新文章

  1. python外包_python怎么找外包
  2. hadoop大数据——mapreduce程序提交运行模式及debug方法
  3. 记录docker开发hadoop,解决bug Datanode denied communication with namenode because hostname cannot be
  4. 教你玩4款最新族视频摄像头
  5. html语言可以写模版继承吗,Django框架(十一):模板介绍、模板语言、模板继承、HTML转义...
  6. ES报错:Connection reset by peer 解决经历
  7. 华菱重卡仪表指示说明_仪表装置11种常见故障的解决方法
  8. java输出日志_java代码中如何正确使用loggger日志输出
  9. Sonarqube+maven 分析代码
  10. igmp是哪个层协议_通俗易懂网络协议(IP)
  11. 我感到很惭愧的飞鸽传书
  12. java写文件 自动创建目录吗_Java 自动创建日志目录及文件
  13. php闪屏程序,节日闪屏的两种构成方式
  14. sql中的日期函数和case函数
  15. 实对称矩阵的特征值求法_机器学习与线性代数 - 特殊矩阵
  16. 如何做好酒店财务管理工作(各部门经理必看)
  17. 人体神经系统分布图高清,神经系统图片高清
  18. ceph HEALTH_WARN slow ops
  19. img标签图片404异常捕获返回默认图片
  20. hive 学习系列三(表格的创建create-table)

热门文章

  1. C++结构体初始化方法
  2. python儿童入门教程-python儿童教程
  3. MySQL 5.7的Homebrew安装 - MacOS
  4. G.O.A.T!最靠谱的Mirai僵尸病毒编译教程
  5. 4G频段划分体现平衡 三大运营商重回起跑线
  6. [转载]浅谈电视剧《武林外史》之白飞飞_-刘艳红-_新浪博客
  7. 抖音小店无货源玩法,玩好这几点小店轻轻松松月入上万
  8. 解决同一个局域网两个DHCP冲突问题--涉及到局域网IP扫描,主机操作系统扫描,mac地址查询
  9. Use GraceNote SDK in iOS(二)获取音乐的完整信息
  10. Functional Programming for the Rest of Us 函数式编程另类指南