数组与可变数组

2015年6月14日

1.数组

数组的初始化方式

1.初始化一个空数组

NSArray *array = [[NSArray alloc] init];//不可变数组,数组内不可以添加,删除,替换等元素

2.初始化一个空数组

NSArray *array = [NSArray array];

3.初始化一个数组,同时赋一个值给数组

NSArray *array = [NSArray arrayWithObject:@""];//数组里可以放任何类型的数据

4.初始化的同学添加多个元素

NSArray *array = [NSArray arrayWithObjects:@"",@"", nil];//注意不要忘记写nil,在它的前面有个逗号,

5.数组书写的新方法

NSArray *array = @[@"",@""];

数组取值,通过数组下标取值,下标从0开始,取数组里面元素的方法objectAtIndex

//        新方法

//        数组里面存的是什么类型就要用什么类型的变量去接收

//        NSString *name = list[1];

NSLog(@“%@",list[2]);

类型转换

数组里面需要的是id类型 需要把基本数据类型转换成NSNumber类型

int age = 120;

int s = 1;

NSLog(@"%012d",s);

NSNumber *ageNum = [[NSNumber alloc] initWithInt:age];

NSLog(@"%@",ageNum);

NSNumber *ageNum1 = [NSNumber numberWithInt:age];

//        现在把NSNumber类型转换成float类型

float aa = [newXiaoShu floatValue];

NSLog(@“%.5f",aa);

2.可变数组

//        可以在数组里面进行增删改的操作

//

//        可变数组与数组的关系:可变数组是数组的子类,

//        可变数组的初始化方式

//        NSMutableArray *array= [[NSMutableArray alloc] init];

//        NSMutableArray *array1 = [NSMutableArray array];

//        NSMutableArray *array2 = [NSMutableArray arrayWithObject:@""];

//        NSMutableArray *array3 = [NSMutableArray arrayWithObjects:@"",@"", nil];

//        NSMutableArray *array4 = @[@""];不可以这样写,切记,这是可变数组与数组的一个区别,这样初始化它里面的元素是不可变的

//        可变数组可以向数组内添加元素

//        使用可变数组的时候一定要初始化

NSMutableArray *array = [NSMutableArray array];

//        为可变数组添加方法

//        [array addObject:@"huLuWan"];

//        [array addObject:@"aoTeMan"];

//        NSLog(@"%@",array);

[array removeObjectAtIndex:70];移除第70个元素

//        [array removeAllObjects];

[array removeObject:@“技能7"];//把“技能7”移除

//        id obj 数组里面的每个元素

//        in表示在哪个里面

//        group 要遍历的数组

//        和上面的for循环一样的功能

for(id obj in group){

NSLog(@"%@",obj);

}

//        [group firstObject];//获得数组的第一个元素

//        [group lastObject];//获得数组的最后一个元素

[group replaceObjectAtIndex:3 withObject:@"fengshenghai666"];//替换第三个元素为fengshenghai666

补充

- (NSString *)description

{

return [NSString stringWithFormat:@"英雄的名字是:%@,等级是:%ld级,装备是:%@,血量是:%ld,攻击力是:%ld",self.heroName,(long)self.heroLv,self.heroEquipment,self.heroBlood,self.ATK];

}

description方法重写

这样写了之后,在main函数中写这样for循环

for (Hero *hero in allHeroDate) {//把所有的英雄数据输出;

NSLog(@"%@",hero);

}

就能输入allHeroDate里面的所有东西,输出(打印)格式是description里面的格式(样子)

objective-c数组笔记的更多相关文章

  1. Objective -C学习笔记之字典

    //字典:(关键字 值) // NSArray *array = [NSArray array];//空数组 // NSDictionary *dictionary = [NSDictionary d ...

  2. Objective -C学习笔记 之copy(复制)

    //自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...

  3. Object -C 数组 -- 笔记

    // //  main.m //  Array // //  Created by facial on 23/8/15. //  Copyright (c) 2015 facial_huo. All ...

  4. Javascript进阶篇——(数组)笔记整理

    什么是数组数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. <script type="text/javascript"& ...

  5. Java数组笔记

    # 数组--------内存 # 2017/8/31 15:29:19  ## 数组(容器) ## - 为了存储同种数据类型的多个值 - 概念     - 数组是可以存储同一种数据类型多个元素的集合, ...

  6. 05 方法与数组笔记【JAVA】

    ---恢复内容开始--- 1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类 ...

  7. C++ 指针二维数组, C++二维指针数组笔记

    C++ 二维动态数组 一. 已知第一维 #include <iostream> using namespace std; int main(int argc, char const *ar ...

  8. java动态数组笔记

    动态数组: 在java.lang.reflect包下提供了Array类,包括一系列static方法,通过这些方法可动态的创建数组.给元素赋值.取出元素值等等 //理解数组引用——下面定义的objs数组 ...

  9. 一些数组笔记(C)

    0.数组名是一个指针,存放数组首元素地址,所以使用scanf()接受字符串输入时只用写上数组名,不用加&.数组名是常量不允许修改其值.数组只能定义的时候初始化,后期初始化会被认为是修改数组名的 ...

随机推荐

  1. 必须知道的.net(字段、属性和方法)

    1.字段 通常定义为private(封装原则) 2.属性(property) 通常定义为public,表示类的对外成员.具有可读可写属性,通过get和set访问器实现 3.索引器(indexer) C ...

  2. jquery选择器(二)-层次选择器

    1. 后代选择器 2. 子元素选择器 3. 相邻兄弟元素选择器 4. 一般兄弟元素选择器(同辈元素选择器) 5. 补充(除自身以外的前后同辈选择器)

  3. Java系列笔记(4) - JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...

  4. androids-addjavascriptinterface-equivalent-in-ios

    http://stackoverflow.com/questions/7103159/androids-addjavascriptinterface-equivalent-in-ios

  5. css3 github javascript

    欢迎关注我的 github github博客地址 github地址

  6. ActionBar使用

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果. 一.添加A ...

  7. TCP(传输控制协议)和三次握手和四次断开

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC 793定义.在简化的计算机网络OSI模型中, ...

  8. MongoDB的索引(四)

    创建索引的好处是可以加快查询速度,但是但来的负面影响就是磁盘的开销和降低写入性嫩. 查看评判当前索引构建情况方法: 1. 使用mongostat工具: 查看mongodb运行状态的程序 使用格式:mo ...

  9. 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...

  10. 51Nod 1250 排列与交换

    Description 统计 \(1...n\) 的排列,恰好进行 \(k\) 次相邻交换和至多进行 \(k\) 次交换生成的不同的序列个数. Sol DP. 好妙的题啊... 首先看第一个问题. 对 ...