NSArray
代表元素有序、可重复的一个集合,集合中每个元素都有对应的顺序索引。
创建NSArray的常见方法
1、array:创建一个不包含任何元素的空NSARRAY
2、arrayWithObject/initWithObject:创建只包含指定元素的NSArray
3、arrayWithObjects/initWithObjects:创建只包含一个或多个元素的NSArray
4、arrayWithContentsOfFile:读取文件内容来创建NSArray
(以下程序列举了常用的NSArray方法)
//
// main.m
// Array
//
// Created by mac on 14-12-3.
// Copyright (c) 2014 年 mac. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "People.h"
// 静态创建数组的方法
void staticCreatArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSLog ( @"Way 1: %@" ,array1);
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
NSLog ( @"Way 2: %@" ,array2);
NSArray * array3 = [ NSArray arrayWithArray :array2];
NSLog ( @"Way 3: %@" ,array3);
[array1 release ];
[array2 release ];
[array3 release ];
}
// 动态创建数组的方法
void dynamicCreatArray()
{
NSArray * array1 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , nil ];
NSLog ( @"Way 1: %@" ,array1);
NSArray * array2 = [[ NSArray alloc ] initWithArray :array1];
NSLog ( @"Way 2: %@" ,array2);
}
// 查询集合元素在 NSArray 中的序列
void searchArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
NSArray * array3 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , @"HELLO" , nil ];
NSLog ( @"%lu" ,[array1 count ]);
NSLog ( @"%hhd" ,[array3 containsObject : @"HELLO" ]);
NSLog ( @"%@" ,[array2 lastObject ]);
NSLog ( @"%@" ,[array2 objectAtIndex : 1 ]);
NSLog ( @"%lu" ,[array2 indexOfObject : @"NSArray1" ]);
NSRange range = NSMakeRange ( 0 , 2 );
NSLog ( @"%lu" ,[array2 indexOfObject : @"NSArray2" inRange :range]);
[array3 release ];
}
// 对数组进行比较
void compareArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSArray * array11 = [array1 copy ];
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
NSArray * array3 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , @"HELLO" , @"NSArray1" , nil ];
NSLog ( @"%hhd" ,[array1 isEqualToArray :array11]);
NSLog ( @"%@" ,[array2 firstObjectCommonWithArray :array3]);
[array3 release ];
}
// 遍历数组
void ergodicArray()
{
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
//C 语言方式
for ( int i = 0 ; i<[array2 count ]; i++)
{
NSLog ( @"%@" ,[array2 objectAtIndex :i]);
}
// 快速遍历
for ( id obj in array2)
{
NSLog ( @" %@" ,obj);
}
//Block 方法遍历
[array2 enumerateObjectsUsingBlock :^( id obj, NSUInteger idx, BOOL *stop)
{
if (idx< 1 )
{
* stop = YES ;
}
NSLog ( @"%lu,%@" ,idx,obj);
}];
// 迭代器方法遍历
NSEnumerator * enumerator =[array2 objectEnumerator ];
id obj ;
while (obj= [enumerator nextObject ]) {
NSLog ( @"%@" ,obj);
}
}
// 其他方法
void otherArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
// 快速遍历 array
for ( id obj in array2)
{
NSLog ( @"%@" ,obj);
}
array2 = [array2 arrayByAddingObject : @"NSArray4" ];
for ( id obj in array2)
{
NSLog ( @" %@" ,obj);
}
array2 = [array2 arrayByAddingObjectsFromArray :array1];
for ( id obj in array2)
{
NSLog ( @" %@" ,obj);
}
NSArray *pathArray = [ NSArray arrayWithObjects : @"here" , @"be" , @"dragons" , nil ];
NSLog ( @"%@" ,pathArray);
NSLog ( @"%@" ,[pathArray componentsJoinedByString : @"->" ]);
NSRange range = NSMakeRange ( 0 , 3 );
NSLog ( @"%@" ,[array2 subarrayWithRange :range]);
}
// 排序
void sortArray()
{
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray2" , @"NSArray1" , @"NSArray3" , nil ];
NSLog ( @"Before Sort:%@" ,[array2 componentsJoinedByString : @" " ]);
// 选择排序
NSArray * selectSortArray = [array2 sortedArrayUsingSelector : @selector (caseInsensitiveCompare:)];
NSLog ( @"After Sort :%@" ,[selectSortArray componentsJoinedByString : @" " ]);
NSArray * array3 = [ NSArray arrayWithObjects : @"NSArray2" , @"NSArray1" , @"NSArray3" , @"NSArray5" , @"NSArray4" , nil ];
NSLog ( @"Before Sort:%@" ,[array3 componentsJoinedByString : @" " ]);
// main.m
// Array
//
// Created by mac on 14-12-3.
// Copyright (c) 2014 年 mac. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "People.h"
// 静态创建数组的方法
void staticCreatArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSLog ( @"Way 1: %@" ,array1);
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
NSLog ( @"Way 2: %@" ,array2);
NSArray * array3 = [ NSArray arrayWithArray :array2];
NSLog ( @"Way 3: %@" ,array3);
[array1 release ];
[array2 release ];
[array3 release ];
}
// 动态创建数组的方法
void dynamicCreatArray()
{
NSArray * array1 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , nil ];
NSLog ( @"Way 1: %@" ,array1);
NSArray * array2 = [[ NSArray alloc ] initWithArray :array1];
NSLog ( @"Way 2: %@" ,array2);
}
// 查询集合元素在 NSArray 中的序列
void searchArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
NSArray * array3 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , @"HELLO" , nil ];
NSLog ( @"%lu" ,[array1 count ]);
NSLog ( @"%hhd" ,[array3 containsObject : @"HELLO" ]);
NSLog ( @"%@" ,[array2 lastObject ]);
NSLog ( @"%@" ,[array2 objectAtIndex : 1 ]);
NSLog ( @"%lu" ,[array2 indexOfObject : @"NSArray1" ]);
NSRange range = NSMakeRange ( 0 , 2 );
NSLog ( @"%lu" ,[array2 indexOfObject : @"NSArray2" inRange :range]);
[array3 release ];
}
// 对数组进行比较
void compareArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSArray * array11 = [array1 copy ];
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
NSArray * array3 = [[ NSArray alloc ] initWithObjects : @"1,2,3,4,5" , @"HELLO" , @"HELLO" , @"NSArray1" , nil ];
NSLog ( @"%hhd" ,[array1 isEqualToArray :array11]);
NSLog ( @"%@" ,[array2 firstObjectCommonWithArray :array3]);
[array3 release ];
}
// 遍历数组
void ergodicArray()
{
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
//C 语言方式
for ( int i = 0 ; i<[array2 count ]; i++)
{
NSLog ( @"%@" ,[array2 objectAtIndex :i]);
}
// 快速遍历
for ( id obj in array2)
{
NSLog ( @" %@" ,obj);
}
//Block 方法遍历
[array2 enumerateObjectsUsingBlock :^( id obj, NSUInteger idx, BOOL *stop)
{
if (idx< 1 )
{
* stop = YES ;
}
NSLog ( @"%lu,%@" ,idx,obj);
}];
// 迭代器方法遍历
NSEnumerator * enumerator =[array2 objectEnumerator ];
id obj ;
while (obj= [enumerator nextObject ]) {
NSLog ( @"%@" ,obj);
}
}
// 其他方法
void otherArray()
{
NSArray * array1 = [ NSArray arrayWithObject : @"NSArray" ];
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray1" , @"NSArray2" , @"NSArray3" , nil ];
// 快速遍历 array
for ( id obj in array2)
{
NSLog ( @"%@" ,obj);
}
array2 = [array2 arrayByAddingObject : @"NSArray4" ];
for ( id obj in array2)
{
NSLog ( @" %@" ,obj);
}
array2 = [array2 arrayByAddingObjectsFromArray :array1];
for ( id obj in array2)
{
NSLog ( @" %@" ,obj);
}
NSArray *pathArray = [ NSArray arrayWithObjects : @"here" , @"be" , @"dragons" , nil ];
NSLog ( @"%@" ,pathArray);
NSLog ( @"%@" ,[pathArray componentsJoinedByString : @"->" ]);
NSRange range = NSMakeRange ( 0 , 3 );
NSLog ( @"%@" ,[array2 subarrayWithRange :range]);
}
// 排序
void sortArray()
{
NSArray * array2 = [ NSArray arrayWithObjects : @"NSArray2" , @"NSArray1" , @"NSArray3" , nil ];
NSLog ( @"Before Sort:%@" ,[array2 componentsJoinedByString : @" " ]);
// 选择排序
NSArray * selectSortArray = [array2 sortedArrayUsingSelector : @selector (caseInsensitiveCompare:)];
NSLog ( @"After Sort :%@" ,[selectSortArray componentsJoinedByString : @" " ]);
NSArray * array3 = [ NSArray arrayWithObjects : @"NSArray2" , @"NSArray1" , @"NSArray3" , @"NSArray5" , @"NSArray4" , nil ];
NSLog ( @"Before Sort:%@" ,[array3 componentsJoinedByString : @" " ]);
}
int
main(
int
argc,
const
char
* argv[]) {
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!");
// staticCreatArray();
// dynamicCreatArray();
// searchArray();
// compareArray();
// ergodicArray();
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!");
// staticCreatArray();
// dynamicCreatArray();
// searchArray();
// compareArray();
// ergodicArray();
// otherArray();
// sortArray();
}
return 0 ;
}