IOS 中 NSArray
今天在做 cordova 关于处理未读条数的插件时,需要在js中传入 int 型。 但是发现所有插件 里面的参数信息都是封装在NSArry对象里面。 因此又突然想直接在NSArry获取信息的想法。 但是发现直接获取不可取的。因此查询了相关资料又重新温习了一遍其知识。 (当然既然直接无法获取整形,那么我就变向通过 NSString 和 int 之间的互转来进行处理---[str intValue])
NSArray
用于对象有序集合(相当于是数组)
===========================================================================
NSArray是不可变的,而且只能储存Object-c对象。另外,数组的最后一个元素一定是nil,表示结束。
注:这些集合类只能收集cocoa对象(NSOjbect对象),如果想保存一些原始的C数据(例如,int, float, double, BOOL等),则需要将这些原始的C数据封装成NSNumber类型的,NSNumber对象是cocoa对象,可以被保存在集合类中。
数组常见的用法首先是创建数组,然后对数组进行操作。
对数组进行的操作可以分为:增(插入),删,改,查 , 取,遍历,排序,比较,
对于NSArray来说,因为本身是不可变的,所以对NSArray的操作没有增和删。
NSArray *array = [ NSArray alloc] init ];
1.取
- (id)objectAtIndex : (NSInteger *)aValue 得到所给下标的数组中的值
- (NSInteger *)indexOfObject: (id)object 得到所给对象在数组中的下标
- lastObject; 得到数组中最后一个值
例如:
Student *stu1=[Student studentWithName:@"张三" andHobby:@"hk" andAge:21];
Student *stu2=[Student studentWithName:@"李四" andHobby:@"hjik" andAge:25];
Student *stu3=[Student studentWithName:@"王五" andHobby:@"fds" andAge:23];
NSArray *stuArray=[[NSArray alloc]initWithObjects:stu1,stu2,stu3, nil];//创建数组对象并 初始化内容
int c=[stuArray count];//返回是数组元素个数
for (int i=0; i
{
Student *st=[stuArray objectAtIndex:i];//获取数组相关下表对应的元素
[st sayHi];
}
NSLog(@"%d",[stuArray indexOfObject:stu3]);//indexOfObject是得到所给对象在数组中的下标
结果是:
我叫张三,今年21,我的爱好是hk
我叫李四,今年25,我的爱好是hjik
我叫王五,今年23,我的爱好是fds
2.查
- containsObject :(id)object 查询是否包含所给对象
3.遍历数组
三种方法:1.in 2.遍历器 3.for
另外,NSArray还有一个非常强大的方法 -makeObjectsPerformSelector () ;这个函数可以将一个操作作用在数组中的每个元素上。例如:
[array makeObjectsPerformSelector:@selector(get:)] ;
IOS 中 NSArray的更多相关文章
- 从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray)
从deque到std::stack,std::queue,再到iOS 中NSArray(CFArray) deque deque双端队列,分段连续空间数据结构,由中控的map(与其说map,不如说是数 ...
- iOS中--NSArray调用方法详解 (李洪强)
下面的例子以 NSArray *array = [NSArray arrayWithObjects:@"wendy",@"andy",@"to ...
- ios 中NSArray
// #import <Foundation/Foundation.h> #import "Animal.h" int main(int argc, const cha ...
- iOS中数据库应用基础
iOS 数据库入门 一.数据库简介 1.什么是数据库? 数据库(Database) 是按照数据结构来组织,存储和管理数据的仓库 数据库可以分为2大种类 关系型数据库(主流) PC端 Oracle My ...
- iOS 中的 HotFix 方案总结详解
相信HotFix大家应该都很熟悉了,今天主要对于最近调研的一些方案做一些总结.iOS中的HotFix方案大致可以分为四种: WaxPatch(Alibaba) Dynamic Framework(Ap ...
- iOS中获取各种文件的目录路径的方法
我们的app在手机中存放的路径是:/var/mobile/Applications/4434-4453A-B453-4ADF535345ADAF344 后面的目录4434-4453A-B453-4AD ...
- iOS中的数据持久化方式
iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data. 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...
- iOS:iOS中的多控制器管理
iOS中的控制器有三种创建方式: 1.通过storyboard创建 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@" ...
- iOS中几种常用的数据存储方式
自己稍微总结了一下下,方便大家查看 1.write直接写入文件的方法 永久保存在磁盘中,可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
随机推荐
- hook_schema 小总结
1, primary key 可以带空格 做为下表 但field就不行 2, dev_node 仅为下标 'primary key' => array('nid'), 'foreign k ...
- libCEF总结02字符串
libCEF 的 CefString.cef_string_t 在 Windows 下均表示一个 16 位的 Unicode 字符串,它们的使用请参考下面的代码 {//wchar_t* ==> ...
- Django开发博客- 三部曲
其实在django中实现一个功能只需要三个步骤即可,这里我姑且叫它三部曲. 这三部曲就是: 定义urls映射 定义views 定义templates 什么是URL? URL就算一个WEB地址,你在浏览 ...
- robotframework笔记13
变量 介绍 变量是不可或缺的功能机器人框架,他们可以 在大多数地方用于测试数据. 通常,他们使用 参数测试用例表中的关键字和关键字表,但是 也都设置允许变量的值. 一个正常的字 的名字 不能 指定一个 ...
- Log 日志级别
一直对于程序中的日志级别有点模糊,今天专门百度学习下.遂成此文: 日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level).: 1.static Le ...
- CI(CodeIgniter)框架介绍
CodeIgniter 是一个为用 PHP 编写网络应用程序的人员提供的工具包.它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI 提供了一套丰富的类库来满足通常的任务需求,并且提供了一 ...
- 我的R代码备份
1 #f1=scan(file="f1.txt"); 2 #f2=scan(file="f2.txt"); 3 f=scan(file="5.2_ ...
- shell脚本流程搭建
程序中删除文件夹即用rm -rf ${Dir} rm -f ${Dir}/* rm -f ${Dir}* 的时候要注意先检查路径变量是否有定义不为空. if [ ! -z ${LogDir} ]; t ...
- Spring的web应用启动加载数据字典方法
在一个基于Spring的web项目中,当我们需要在应用启动时加载数据字典时,可写一个监听实现javax.servlet.ServletContextListener 实现其中的contextIniti ...
- Octopus系列之HttpCustom2.0模板引擎的处理,一个bug的分析
实现的目标是: 1.实现手机和PC模板请求的区分:使得来自两种不同设备请求的时候,各自路由到不同的目录中去 2.保持只有一个引擎实例对象 最后发现一个bug就是,当我从PC访问时初始化了PC的目录,呈 ...