IOS 学习笔记 2015-03-20 OC-数组

[NSArray]
一 定义
1  不可变数组
2 oc中数组的元素可以是任何对象
3 数字中装有元素的地址 

二 初始化
NSArray *变量 = [[NSArry alloc] initWithObjects:对象...,nil];

三 使用场景
1 遍历数组
A 枚举
 NSEnumerator *enums = [array1 objectEnumerator];
  while (obj=[enums nextObject])
B 下标
 for (i=0;i<count;i++) {
C 快速枚举法
for(id obj in array1)

2 获取长度
int count = [数组对象 count];

[NSMutableArray]
一 定义
1 可变数组
2 可以插入任意对象

二 初始化
NSMutableArray *变量名 = [[NSMutableArray alloc] init];

三 使用场景
1 增加对象
[mutableArray addObject:@"JACK"];
2 下标替换对象
[mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2];
3 移除对象
 [mutableArray removeObject:person];   [mutableArray removeObjectAtIndex:0];
4 顺序枚举遍历
  NSEnumerator *_enums = [mutableArray objectEnumerator];
5 倒序枚举遍历
   NSEnumerator *_reverseEnums = [mutableArray reverseObjectEnumerator];
6 字符串和数组的转换
  NSArray *_strArray = [str componentsSeparatedByString:@" "];
  NSString *str = [_strMutableArray componentsJoinedByString:@" "];
//
//  main.m
//  OC-数组
//
//  Created by wangtouwang on 15/3/20.
//  Copyright (c) 2015年 wangtouwang. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 不可变数组 NSArry
        NSLog(@"NSArry");
        Person *person = [Person new];
        person._name=@"JACK";

        //初始化
        NSArray *array1 = [[NSArray alloc] initWithObjects:@"jack",@"lucy",person, nil];
        NSLog(@"%@",array1);

        //枚举
        NSLog(@"枚举器法打印数组结果:");
        NSEnumerator *enums = [array1 objectEnumerator];
        id obj;
        while (obj=[enums nextObject]) {
            NSLog(@"%@",obj);
        }

        //快速枚举
         NSLog(@"快速枚举法打印数组结果:");
        for(id obj in array1){
            NSLog(@"%@",obj);
        }

        //下标便利
        NSInteger i = 2;
        id obj2 = [array1 objectAtIndex:i];
        NSLog(@"%@",obj2);

        //获取长度
        NSInteger count=[array1 count];
        NSLog(@"数组长度 %lu",count);
        i=0;
        for (i=0;i<count;i++) {
            NSLog(@"%@",[array1 objectAtIndex:i]);
        }

        //可变数组 NSMutableArray

        NSMutableArray *mutableArray  = [[NSMutableArray alloc] init];
        //增加
        [mutableArray addObject:@"JACK"];
         [mutableArray addObject:@"MOBILE"];
         [mutableArray addObject:@"TEL"];
        [mutableArray addObject:@"BOOK"];
        [mutableArray addObject:@"STUDENT"];
        [mutableArray addObject:person];
        NSLog(@"%@",mutableArray);

        //替换对象
         NSLog(@"替换对象");
        [mutableArray exchangeObjectAtIndex:0 withObjectAtIndex:2];
         NSLog(@"%@",mutableArray);

        //移除对象 参数 id类型
        NSLog(@"移除对象 参数 id类型");
        [mutableArray removeObject:person];
         NSLog(@"%@",mutableArray);
        //移除对象 参数 NSInteger
          NSLog(@"移除对象 参数 NSInteger");
        [mutableArray removeObjectAtIndex:0];
         NSLog(@"%@",mutableArray);

        //正序枚举遍历
         NSLog(@"正序枚举遍历");
        NSEnumerator *_enums = [mutableArray objectEnumerator];
        id obj3;
        while (obj3=[_enums nextObject]) {
             NSLog(@"%@",obj3);
        }
        //倒序枚举遍历  并且可以遍历时删除
         NSLog(@"倒序枚举遍历 并且可以遍历时删除");
        NSEnumerator *_reverseEnums = [mutableArray reverseObjectEnumerator];
        while (obj3=[_reverseEnums nextObject]) {
             NSLog(@"%@",obj3);
            [mutableArray removeObject:obj3];
        }
        NSLog(@"倒序枚举遍历结束 查看数组长度 %lu",[mutableArray count]);

        //字符串和数组的转换
        NSString *str = @"hello world hao are you";
        NSArray *_strArray = [str componentsSeparatedByString:@" "];
        NSLog(@"lenght = %lu",[_strArray count]);

        NSMutableArray *_strMutableArray = [[NSMutableArray alloc] init];
        NSEnumerator *_strEnums = [_strArray reverseObjectEnumerator];
        NSString *objstring ;
        while (objstring=[_strEnums nextObject]) {
            [_strMutableArray addObject:objstring];
        }
       NSLog(@"%@",_strMutableArray);

        str = [_strMutableArray componentsJoinedByString:@" "];
        NSLog(@"%@",str);
    }
    return 0;
}
				
时间: 2024-10-29 13:35:32

IOS 学习笔记 2015-03-20 OC-数组的相关文章

iOS学习笔记---oc语言第四天

字符串 数组 一.使用苹果帮助文档 学会使?用苹果帮助?文档是开发者的?一项技能 Inherits from 继承?自 Conforms to 遵循什么协议 Framework 属于哪个框架 Availability 什么时候可?用的 Declared in 声明在什么头文件?里 Related documents 相关文档 Sample code ?示例代码 快速打开帮助文档 在代码中,将?鼠标停留在 类名或者?法名上,option+?鼠标左键,点击 Reference的超链接进?入帮助?文档

iOS学习笔记---oc语言第五天

字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key-value对)的数据 对于“name:张三”来讲,key就是“name”,key对应的value是“张 三” 一个key-value对认为是一个元素(实体),字典是存储key-value对 的容器. 特点: 与数组不同,数组靠下标存取数据,数组的下标是唯一的. 字典靠key存取元素.key不能重复,

iOS学习笔记---oc语言第六天

Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语?中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函数声明,即函数原型.例如:int sum(int x,int y);具有两个整型参 数,一个整型返回值的函数. 函数定义,即函数实现.例如:int sum(int x,int y){     retrun x + y;     } 回顾函数指针 函数指针(变量):存放函数地址(函数名)的指针变量.

黑马程序员--IOS学习笔记--数组及排序

IOS学习笔记 概述: 8_2.改变整型变量的符号 8_2.改变整型变量所占存储空间 8_3.char类型数据存储 8_4.数组的基本概念及分类 8_5.数组元素作为函数参数 8_5.一维数组定义及注意事项 8_6.一维数组初始化 8_7.一维数组一个让人疑惑的问题 8_8.一维数组的引用 8_9.应用:数组遍历 8_10.一维数组的存储方式 8_11.一维数组的地址 8_12.一维数组长度计算方法 8_13.一维数组的越界问题 8_14.应用:找最大值 8_15.数组元素作为函数参数 8_16

iOS学习笔记---oc语言第七天

类的扩展 NSDate是Cocoa中用于处理日期和时间的基础类,封装了某一给定的时刻,具体的日期 时间和时区 使用+date方法获取当前日期和时间 1 NSDate *date = [NSDate date];//获取当前时间 2 NSLog(@"%@",date);//无论你是哪个时区的时间,打印的总是o时区的时间 3 NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:60*60*8];//从现在开始之后的时间 4 NSLog(

ios学习笔记图片+图片解释(c语言 oc语言 ios控件 ios小项目 ios小功能 swift都有而且笔记完整喔)

下面是目录其中ios文件夹包括了大部分ios控件的介绍和演示,swift的时完整版,可以学习完swift(这个看的是swift刚出来一周的视频截图,可能有点赶,但是完整),c语言和oc语言的也可以完整的学习完所需知识,,其他文件夹的内容如其名说描述一样 没张图片都有文字说明,可以需要该功能的时候搜索一下然后打开图片就可以学习到 网盘下载地址:需要的话给留言我再传上去 http://www.cnblogs.com/langtianya原创 ios学习笔记图片+图片解释(c语言 oc语言 ios控件

iOS学习笔记---oc语言第三天

继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量也继承过来了,只是不能访问) 面向对象提供了继承语法.能大大简化代码,把公共的方法和实例对象写在父类里.子类只需要写自己独有的实例变量和方法即可 继承既能保证类的完整,又能简化代码 继承特点 oc中只允许单继承 没有父类的类称为根类,oc中得根类是NSObject(祖宗) 继承的内容:所有的实例变量

iOS学习笔记---oc语言第二天

实例变量与方法 一.实例变量的可见度 二.方法 oc中的方法分两种:类方法和实例方法 类方法:只能类使用 eg:+ (id)alloc  注:类方法中不能使用实例变量 实例方法:只能对象使用,eg:- (void)sayHi iOS学习笔记---oc语言第二天

iOS学习笔记-精华整理

iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁. 2-成员属性:     readonly:不指定readonly,默认合成getter和setter方法.外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全

iOS学习笔记---c语言学习第七天

结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符  成员名: … 类型说明符  成员名: }: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { struct teacher{ char name[30]; char sex; int age; char course[30]; }; typedef struct teacher Teacher; Teacher c