文档章节

Object-C代码练习【集合_NSArray和NSMutableArray】

TomatosX
 TomatosX
发布于 2014/10/06 21:35
字数 478
阅读 16
收藏 0
//
//  main.m
//  集合
//
//  Created by on 14-10-5.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
//        ================不可变数组,NSArray================
//        初始化一个数组元素,注意这里是arrayWithObject,不是arrayWithObjects
        NSArray *array1 = [NSArray arrayWithObject:@"one"];
        NSLog(@"%@", array1);
        
//        初始化多个元素注意要用nil结尾
        NSArray *array2 = [NSArray arrayWithObjects:@"one", @"two", nil];
        NSLog(@"%@", array2);
        
//        从array2创建array3,array2和array3是指向同一个对象
        NSArray *array3 = [NSArray arrayWithArray:array2];
        NSLog(@"%@", array3);
        
        NSArray *array4 = [[NSArray alloc] initWithArray:array3];
        NSLog(@"%@", array4);
        
//        ================常用方法================
        NSArray *array5 = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil];
//        获取数组中的元素个数
        NSLog(@"%ld", [array5 count]);
//        根据下标访问对象
        NSLog(@"%@", [array5 objectAtIndex:1]);
//        在原来的数组上追加一个对象,返回一个新的数组对象
        NSArray *tmp = [array5 arrayByAddingObject:@"ddddd"];
        NSLog(@"%@", tmp);
//        用指定的字符串数组元素连接起来
        NSLog(@"%@", [array5 componentsJoinedByString:@", "]);
//        数组中是否包含某一对象
        NSLog(@"%hhd", [array5 containsObject:@"b"]);
//        查询指定对象在数组中的元素,如果没有此元素,返回NSNotFound
        NSLog(@"%ld", [array5 indexOfObject:@"c"]);
//        获取数组中最后一个元素
        NSLog(@"%@", [array5 lastObject]);
        
//////////////////////////////////////////////////////////////////////////////////////////
//        ================可变数组的常用方法================
        NSMutableArray *muStr = [NSMutableArray arrayWithCapacity:5];
//        向数组中添加元素
        [muStr addObject:@"aaa"];
        NSLog(@"%@", muStr);
//        向数组中指定下标插入元素
        [muStr insertObject:@"bbb" atIndex:1];
        NSLog(@"%@", muStr);
//        移除最后一个元素
        [muStr removeLastObject];
        NSLog(@"%@", muStr);
//        移除指定元素
        [muStr removeObjectAtIndex:0];
        NSLog(@"%@", muStr);
//        向数组中添加数组
        NSArray *tmp2 = [muStr arrayByAddingObjectsFromArray: array2];
        NSLog(@"%@", tmp2);
//        从数组删除数组
        [muStr addObject:@"one"];
        [muStr addObject:@"two"];
        NSLog(@"%@", muStr);
        [muStr removeObjectsInArray:array2];
        NSLog(@"%@", muStr);
        
//        枚举集合,请参考代码OC-ArrayEnumeration
        
///////////////////////////////////练习:倒置数组元素///////////////////////////////////
        NSMutableArray *tmp1 = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];
        int length = (int)[tmp1 count];
        for (int i = 0, j = length - 1; i < j; i++, j--) {
            id tmp2 = [tmp1 objectAtIndex:i];
            [tmp1 replaceObjectAtIndex:i withObject:[tmp1 objectAtIndex:j]];
            [tmp1 replaceObjectAtIndex:j withObject:tmp2];
        }
        NSEnumerator *enumExchange = [tmp1 objectEnumerator];
        id nextObj;
        while (nextObj = [enumExchange nextObject]) {
            NSLog(@"倒置数组:%@", nextObj);
        }
    }
    return 0;
}



© 著作权归作者所有

共有 人打赏支持
TomatosX
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
NSStirng、NSArray、以及枚举(Method小集合)

一下内容由angellixf整理,这里制作记录: Object-c代码 /*** NSString ***/ //一、NSString /----------------创建字符串的方法----------------/ //1、创建常量字符串。 NSString *astring ...

慎道
2011/03/24
0
0
Object-c 中的数据类型

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

gaoios
2014/01/05
0
0
OC语言自学《十二》---- OC(Foundation框架部分知识总结)

NSRange 表示一个范围 主要用来操作字符串 CGPoint、NSPoint 通过设置x坐标和y坐标来设置某个点 IOS设备的x和y从左上角开始,y值往下面增加,x值往右面增加 CGSize、NSSize 表示一个矩形尺寸...

罗眯眯
2014/04/09
0
0
iOS 数组遍历删除&自定义迭代器

在iOS中,数组是无法通过迭代器删除的,无论是enumerateObjectsUsingBlock迭代器还是for in,抑或是NSEnumerator都无能为力,当然 for循环更不行了,对于java编程的同学来说无法接受啊。 当然...

IamOkay
2016/03/28
1K
1
数组的简单方法

注:在Object C中使用NSArray 来创建数组;但是在Object C中NSArray 只能存放对象类型的指针,不能存放int,char,double等基本数据类型。   一. 不可变数组对象     这个和之前的NSStr...

Matsonga
2016/03/03
29
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 懒床是对冬天最起码的尊重

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @瘟神灬念 :分享daniwellP/桃音モモ的单曲《Nyan Cat》 《Nyan Cat》- daniwellP/桃音モモ 手机党少年们想听歌,请使劲儿戳(这里) @巴拉迪...

小小编辑
23分钟前
2
0
码云项目100,水一发

简单回顾一下: 早期构想最多的,是希望能将PHP一些类和编码分区做得更细,所以很多尝试。但不得不说,PHP的功能过于单一,是的,也许写C/C++扩展,可以解决问题,那我为什么不用C#或者Golan...

曾建凯
今天
3
0
Spring应用学习——AOP

1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就...

江左煤郎
今天
4
0
eclipse的版本

Eclipse各版本代号一览表 Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。 Eclipse基本内核包括:图形API(SWT/Jface),Java开发环...

mdoo
今天
3
0
SpringBoot源码:启动过程分析(一)

本文主要分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 还是老套路,先把分析过程的时序图摆出来:时序图-SpringBoot2.10启动分析 二.源码分析 首...

Jacktanger
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部