不可变数组 ——NSArray

常用的初始化一个数组:

      NSArray *array1 = [[NSArray alloc] init];

      NSArray *array2 = [NSArray array];

  //对于上述两个方法,在NSArray中用的很少,因为这是一个空数组,它的值是不可改变的,意味着一旦创建,就永远为空

      NSArray *array3 = [NSArray arrayWithObjects:[NSNumber numberWithInt:123],@"char",[NSNumber numberWithFloat:1.0f],nil];

      NSArray *array4 = [NSArray arrayWithArray:array3];

      NSArray *array5 = [NSArray arrayWithObject:@123];//NSNumber新方法

      NSString *path = @"string8.text"; //@里出现的是想要访问的文件的路径

      NSArray *array6 = [NSArray arrayWithContentsOfFile:path];

新方法:NSArray *array = @[@123,@"123",@{@"key": @"value"}];

新方法的出现,减轻了不少代码的负担,对于新方法不用去刻意记,在xcode中输入@后,系统会自动出现一幅图,    选择想用的方法,去创建就好。

对于alloc 方法和不用alloc 创建的区别,在这里就不叙述了,xcode中使用ARC后,开发者可以不用手动管理内存,用alloc时也没有太多需要注意的问题了。

常用的方法:

获取数组长度:      

NSInteger count = [array count];

根据下标访问数组:

NSString * string = [array3 objectAtIndex:1];

在原来的数组上追加对象或数组,返回一个新的数组(原来的数组不变)

NSArray *addArray1 = [array1 arrayByAddingObject:@"char"];

NSArray *addArray2 = [array1 arrayByAddingObjectsFromArray:array4];

用指定的字符串将数组中的元素连接起来:

NSString *appstring = [array4 componentsJoinedByString:@","];

用指定的字符串将字符串中的元素分开并保存到数组中:

NSArray *appArray = [appstring componentsSeparatedByString:@","]; 

数组中是否包含了某个对象:

BOOL isContain = [appArray containsObject:@"abc"];

查找某对象在数组中的位置,若找不到,将返回NSNotFound:

NSInteger index = [appArray indexOfObject:@"char"];

返回数组中最后一个元素:

NSString *lastString = [appArray lastObject];

可变数组 ——NSMutableArray(继承自NSArray)

常用方法:

初始化,设置元素的个数为6,但是可以修改:

NSMutableArray *muArray1 = [NSMutableArray arrayWithCapacity:6];

向数组中指定下标插入一个元素:

[muArray1 insertObject:@"abc" atIndex:0];

向数组中加入一个元素:

[muArray1 addObject:@"123"];

移除数组中最后一个元素:

[muArray1 removeLastObject];

移除数组中指定元素:

[muArray1 removeObject:@"123"];

移除数组中指定下标元素:

[muArray1 removeObjectAtIndex:0];

加入数组作为其元素:

[muArray1 addObjectsFromArray:array];

遍历数组的两种方法:

常规方法:

        NSArray *array = @[@"a",@"b",@"c",@"d",@"e"];

        NSInteger length = [array count];

        for (int i = 0; i < length; i++) {

            NSString * element = [array objectAtIndex:i];

            NSLog(@"element = %@\n",element);

        }

快速遍历:

        NSArray *array = @[@"a",@"b",@"c",@"d",@"e"];

        NSInteger length = [array count];

        for (NSString *element in array) {

            NSLog(@"element = %@",element);

        }

通过枚举类型遍历:

   NSEnumerator *enumerator = [dic keyEnumerator];

   id key = [enumerator nextObject];

   while (key) {

     id obj = [dic objectForKey:key];

     NSLog(@"%@", obj);

     key = [enumerator nextObject];

   }

NSArray,NSMutableArray的一些常用方法的更多相关文章

  1. 关于NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary

    NSString,NSMutableString,NSArray,NSMutableArray,NSDictionary,NSMutableDictionary 在 OC 中我们天天都要用,而我们要怎 ...

  2. NSArray和NSMutableArray相互转换, 以及常用方法-备

    有时候项目中NSArray和NSMutableArray需要相互转化,下面给出相关代码1.NSArray 1.1 转化:NSMutableArray 1 NSMutableArray *mutable ...

  3. OC中的NSNumber、NSArray、NSString的常用方法

    和C语言不同,在Objective-C语言中,有单独的字符串类NSString.C语言中,string是由 char(ASCLL码)字符组成 OC中,字符串是由unichar(Unicode)字符组成 ...

  4. Foundation框架—— 数组 (NSArray NSMutableArray )

    基础知识回顾 1.在给可变数组添加元素时,要保证该数组已被初始化 2.在遍历可变数组时,不能对其进行增删改 3.NSMutableArray继承自NSArray,几乎拥有NSArray的一切方法. 4 ...

  5. NSArray,NSMutableArray的三种排序

    int main(int argc, const char * argv[]) { @autoreleasepool { //字符串进行排序 NSArray *arr=@[@"b" ...

  6. (转)Iphone数组一些基础操作 NSArray/NSMutableArray

    /******************************************************************************************* NSArray ...

  7. NSArray NSMutableArray

    NSArray 或者 NSMUtableArray 去除重复的数据: 原来集合操作可以通过valueForKeyPath来实现的,去重可以一行代码实现: [array valueForKeyPath: ...

  8. NSArray NSMutableArray 初始化

    NSArray* Array;//此时数组没有初始化,数组=nil [Array objectAtIndex:2];//不会调用其属性方法,这里不会崩溃 NSMutableArray *Mutable ...

  9. NSMutableArray和NSArray的常用方法及相互转换

    NSMutableArray和NSArray的常用方法及相互转换 // NSArray --> NSMutableArray NSMutableArray *myMutableArray = [ ...

随机推荐

  1. layui 数据table隐藏表头

    $('.layui-table .layui-table-cell > span').css({'font-weight': 'bold'});//表头字体样式 /*$('th').css({' ...

  2. python暴力破解wifi密码程序

    import time # 破解wifi库 import pywifi from pywifi import const class PoJie(object): def __init__(self, ...

  3. iOS开发遇见的坑之二:工程文件中插件和自身工程命名冲突

    在升级cocoapod后,我重新管理了一下工程,其实也就是把各个类分类进行管理 类似于这样 然后编译就发现不能运行 1.其中一个错误是工程文件缺失,根据提示添加进来进行 2.有一个是pch的相对路径变 ...

  4. HTML5 Canvas奇幻色彩Loading加载动画

    转自   https://www.html5tricks.com/tag/loading%E5%8A%A8%E7%94%BB/

  5. Linux基础学习-使用Squid部署代理缓存服务

    使用Squid部署代理缓存服务 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常作为Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.Squid服务配置简单. ...

  6. linux中mysql自带同步

    今天打算给一个做主备web服务器.考虑到数据库的同步,现在自己本地虚拟机做个实验. 经过慎重考虑(其实就是参考了下论坛大家的看法). 最后决定用mysql自带的同步设置. 话不多说 配置过程如下.

  7. 【xdebug】 windows xdebug 配置

    [xdebug] zend_extension = C:\phpStudy\php53n\ext\php_xdebug-2.6.1-7.0-vc14-nts-x86_64.dllxdebug.idek ...

  8. lnmp环境运行laravel open_basedir restriction in effect 问题

    环境配置:centos 7 : php 7.1.5 Warning: require(): open_basedir restriction in effect. File(/home/wwwroot ...

  9. Python 前端 Html基础

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页的标准语言.相当于定义统一 的规则.大家都来遵守它,这样就可以让浏览器根据标记语 ...

  10. 四丶人生苦短,我用python【第四篇】

    1 基本数据类型 数字    int 字符串   str 布尔值   bool 列表       list 元组       tuple 字典       dict >>>type( ...