文档章节

Objective-C ---NSArray(梳理整理)

都英俊兮
 都英俊兮
发布于 2016/05/18 16:12
字数 891
阅读 45
收藏 0

NSArray

NSArray 和NSDictionary都是oc中的集合类,什么叫做集合,就是装对象的对象

NSArray是有序的 NSDictionary是无序的

1.创建方式   a.[[NSArray alloc] initWithArray:arr1];(用本身创建)

                    b.NSArray*array = @[对象1,对象2,。。。。];

2.常用的属性

    a.count   获取个数

    b.array[0] 获取第0个元素

    c.contains 是否包含 ,返回BOOL    类型

    d.subarrayWithRange  提取元素

3.遍历  1.for(,,)2.enum ([enum1 nextObject]为nil 的时候停止)3.for in(***)

4.排序方法

1.sortedArrayUsingFunction{传入返回类型为NSInteger的函数名,并实现这个函数,较麻烦}

2.sortedArrayWithOptions:<#(NSSortOptions)#> usingComparator:<#^NSComparisonResult(id obj1, id obj2)cmptr#>系统封装好的一个方法,差不多就是sortedArrayUsingFunction的函数方法写在Block内

3.NSSortDescriptor(***)

NSSortDescriptor *des1 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];//根据name排列

NSSortDescriptor *des2 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];//根据age排列

NSArray *desArr = @[des1,des2];//当des1相同时  再比较des2

NSArray *newArray =  [array sortedArrayUsingDescriptors:desArr];

 

子类:NSMutableArray用的比较多

增:  add(在后面添加新元素),  insert(讲新元素插入指定下标)

删: remove*****

改: replace****, exchange****  , set***** (全部改为....)

查:即上面写的遍历方法

======================================

NSDictionary

NSDictionary是无序的集合(NSArray是有序的)

key->value键值对,也就是说字典是通过key来找值的( NSArray是通过下标找值的)

1.创建方式

    a.initWithDictionary

    b.[NSDictionary dictionaryWithObjects:<#(NSArray *)#> forKeys:<#(NSArray *)#>

    c.NSDictionary* dictionary = @{key1 : value1 ,  key2 : value2 ,  key3 : value3 ……}<<NSArray为[]<-中括号>>

2.常用的属性

    a.count

    b.id obj = dictionary[key]

    c.allValues, allKeysForObject

3.遍历  直接推荐forin方式

子类NSMutableDictionary

增: set***** 对键值对(一般就这个了); add***** 增加一个字典内容;  

删: remove*******

改: set******(和增加是同一个方法,有的时候就修改value  没有的话就会添加一对键值对)

=========================================

比较

   1.字典相对与数组的优点  (查询)

    字典获取元素速度比数组快

2.获取元素的方式

数组通过下标获取指定元素的内容

字典通过key来获取指定元素的内容

3.遍历删除的问题 􏳸􏴋 forin  enum block 均不能在遍历的同时  删除元素  for 可以,条件设置为i--

 

苹果官方文档学习(部分在这  全部请至官文文档查看

class NSArray 

NSArray and its subclass NSMutableArray manage ordered collections of objects called arrays. NSArray creates static arrays, and NSMutableArray creates dynamic arrays. You can use arrays when you need an ordered collection of objects.

NSArray和其子类的对象称为nsmutablearray管理有序数组集合。NSArray创建静态数组和动态数组,nsmutablearray创建。当需要对象的有序集合时,可以使用数组。

Overview

NSArray is “toll-free bridged” with its Core Foundation counterpart, CFArrayRef. See Toll-Free Bridging for more information on toll-free bridging.

Symbols

1.1 Creating an Array(类方法创建)

1.2 Initializing an Array(对象方法创建)

1.3 Querying an Array(查询一个数组)

1.4 Finding Objects in an Array(查找一个对象)

1.5 Sending Messages to Elements(向元素发信息)

  1. makeObjectsPerformSelector:
  2. makeObjectsPerformSelector:withObject:
  3. enumerateObjectsUsingBlock:
  4. enumerateObjectsWithOptions:usingBlock:    
  5. enumerateObjectsAtIndexes:options:usingBlock:

1.6 Comparing Arrays(比较Array)

1.7 Deriving New Arrays(派生新的Array)

  1. arrayByAddingObject:
  2. arrayByAddingObjectsFromArray:
  3. filteredArrayUsingPredicate:
  4. subarrayWithRange:

1.8 Sorting(排序)

  1. sortedArrayHint
  2. sortedArrayUsingFunction:context:
  3. sortedArrayUsingFunction:context:hint:
  4. sortedArrayUsingDescriptors:
  5. sortedArrayUsingSelector:
  6. sortedArrayUsingComparator:
  7. sortedArrayWithOptions:usingComparator:

1.9 Working with String Elements(和NSString 联系)

  1. componentsJoinedByString:

1.10 Creating a Description(重新description 创建一个描述)

1.11 Storing Arrays(储存)

  1. writeToFile:atomically:
  2. writeToURL:atomically:

1.12 Collecting Paths

1.13 Key-Value Observing(KVO)

1.14 Key-Value Coding(KVC)

1.15 Randomly Shuffling an Array(随机洗牌)

  1. shuffledArray
  2. shuffledArrayWithRandomSource:

1.16 New Methods(initWithCoder:)

1.17 Constants

Relationships

2.1 Inherits From NSObject

2.2 Conforms To NSCopying,NSMutableCopying,NSFastEnumeration    ,NSSecureCoding

class NSMutableArray

Symbols

Creating and Initializing a Mutable Array

1.1 Adding Objects(增)

  1. addObject:
  2. addObjectsFromArray:
  3. insertObject:atIndex:
  4. insertObjects:atIndexes:

1.2 Removing Objects(删)

1.3 Replacing Objects(改)

1.4 Filtering Content(内容过滤)

  1. filterUsingPredicate:

1.5 Rearranging Content(重新安排内容)

  1. exchangeObjectAtIndex:withObjectAtIndex:
  2. sortUsingDescriptors:
  3. sortUsingComparator:
  4. sortWithOptions:usingComparator:
  5. sortUsingFunction:context:
  6. sortUsingSelector:

1.6 Initializers

Relationships

Inherits From   NSArray

© 著作权归作者所有

都英俊兮
粉丝 2
博文 37
码字总数 11800
作品 0
深圳
iOS工程师
私信 提问
Objective-C中NSArray类的解读

Objective-C中NSArray类的解读 NSArray数组类是Objective-C语言中常用的也是重要的一个类,除了开发中常用到的一些基础功能,NSArray及其相关类中还封装了许多更加强大的功能。有机会总结了一...

珲少
2016/07/19
422
0
MagicalRecord,一个简化CoreData操作的工具库

简介 项目主页:https://github.com/magicalpanda/MagicalRecord 实例下载:https://github.com/ios122/MagicalRecord 在软件工程中,活动记录模式是一种用于在关系数据库中存储数据的设计模式....

ios122
2015/12/11
55
0
Objective-C 中 NULL、nil、Nil、NSNull

NULL NULL 定义在 usr/include/sys/types/null.h 文件里: #ifndef NULL #define NULL DARWIN_NULL #endif / NULL / 其中 DARWINNULL 的定义在 usr/include/sys/_types.h 文件里,如下: #i......

tb_engineer
2016/12/20
9
0
Object-c 中的数据类型

导航: 基本类型 ID 对象类型常见的有 对象类型 -NSLog -NSNumber -NSString和NSMutableString -NSArray和NSMutableArray -NSSet和NSMutableSet -NSDictionary和NSMutableDictionary 基本类型......

gaoios
2014/01/05
998
0
Objective-C中Sqlite3持久层框架

Objective-c中Sqlite3持久层框架是本文要介绍的内容,Cocoa与Cocoa Touch(主要是指iphone,ipad,ipod等等)都对sqlite3提供了良好的支持,但objective-c语言中的sqlite3持久层框架确没有jav...

于赟
2012/11/18
600
1

没有更多内容

加载失败,请刷新页面

加载更多

离线环境玩Docker-镜像篇

接上一篇。之前联网环境的Docker已经安装成功了,那么一切都好办,思路就是把Docker镜像保存为文件,然后放到不能联网的电脑上面,导入镜像即可。 第一步:导出Docker镜像,这里以showdoc为例...

RippleChan
6分钟前
4
0
Spring Boot + Jpa + Thymeleaf 综合实践(增删改查示例)

在前面课程中,我们学习了 Spring Boot Web 开发、JPA 数据库操作、Thymeleaf 和页面交互技术,这节课综合这些内容做一个用户管理功能,包括展示用户列表(分页)、添加用户、修改用户和删除...

zw965
7分钟前
6
0
学习WEB前端开发是选择自学还是去培训机构?

WEB前端开发是目前最火的行业之一,竞争很大,工资很高,未来发展也极好。 我做WEB开发有很长一段时间,现在经常看见大家在留言问我想转行学习WEB前端但是不知道是选择自学,还是选择培训。 ...

说雾
23分钟前
6
0
redis匹配key并设置过期时间命令

redis-cli keys 'session*' | xargs -I {} redis-cli expire {} 1296000

为何不可1995
25分钟前
2
0
单点登录针对 vue 单页面模式下的 hash 问题

由于 hash 模式下,#/ 后面的参数无法传递到后台。 hash、hashchange事件 1、hash即URL中"#"字符后面的部分。   ①使用浏览器访问网页时,如果网页URL中带有hash,页面就会定位到id(或nam...

jxlgzwh
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部