[OC Foundation框架 - 7] NSArray的创建与遍历
NSArray是不可变的,不能先创建再添加元素
- 创建
- 返回用量
- 是否含有某元素
- 最后的元素
- 取得某位置的元素
#pragma mark create a array
void arrayCreate()
{
//Create an empty array
NSArray *array = [NSArray array]; //Create an array with one element
array = [NSArray arrayWithObject:@""]; array = [NSArray arrayWithObjects:@"a", @"b", @"d", nil]; NSUInteger count =[array count];
NSLog(@"%@", count); [array release];
}
最后的nil用作标示数组的结束,不会被存储进数组元素,不允许在其他地方插入
#pragma mark common use
void arrayUser()
{
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
if ([array containsObject:@"a"])
{
NSLog(@"Contans a");
} NSString *last = [array lastObject];
NSLog(@"%@", last); NSString *str = [array objectAtIndex:];
NSLog(@"%@", str); NSUInteger location = [array indexOfObject:@"c"];
NSLog(@"%@", location); [array release];
} #pragma memory manage
void memoryManage()
{
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init]; NSLog(@"stu1: %zi", [stu1 retainCount]); NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, stu3, nil]; NSLog(@"stu1: %zi", [stu1 retainCount]); [stu1 release];
[stu2 release];
[stu3 release]; [array release]; }
void arrayMessage()
{
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init]; NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, stu3, nil]; [array makeObjectsPerformSelector:@selector(test2:) withObject:@"test2"]; [stu1 release];
[stu2 release];
[stu3 release]; [array release];
}
void arrayLoop()
{
Student *stu = [[Student alloc]init];
NSArray *array = [[NSArray alloc] initWithObjects:stu, @"", @"", nil];
unsigned long count = array.count;
// for (int i=0; i<count; i++)
// {
// id obj = [array objectAtIndex:i];
// NSLog(@"%i - %@", i, obj);
// } int i = ;
for (id obj in array)
{
NSLog(@"%i - %@", i, obj);
i++;
} [stu release];
[array release];
}
void arrayLoopByBlock()
{
Student *stu = [[Student alloc]init];
NSArray *array = [[NSArray alloc] initWithObjects:stu, @"", @"", nil]; [array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%zi - %@", idx, obj);
if (idx == )
{
*stop = YES;
}
}]; [stu release];
[array release];
}
void arrayLoopByEnumerator()
{
Student *stu = [[Student alloc]init];
NSArray *array = [[NSArray alloc] initWithObjects:stu, @"", @"", nil]; // NSEnumerator *e = [array objectEnumerator];
NSEnumerator *e = [array reverseObjectEnumerator];
id obj = nil;
while (obj = [e nextObject])
{
NSLog(@"The element is %@", obj);
} [stu release];
[array release];
}
NSArray *array61 = [NSArray arrayWithObjects:@, @, @, @, @, @, @, @, @, @, nil];
NSArray *array61 = @[@, @, @, @, @, @, @, @, @, @];
[OC Foundation框架 - 7] NSArray的创建与遍历的更多相关文章
- [OC Foundation框架 - 8] NSArray排序
1.派生 voidarrayNew() { NSArray*array = [NSArrayarrayWithObjects:",nil]; NSArray*array2 = [arraya ...
- [OC Foundation框架 - 2] NSString 的创建
A. 不可变字符串 void stringCreate() { //Don't need to release memory by this way NSString *str1 = @"S ...
- Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型
Foundation框架之NSArray.NSDictionary.NSSet及其Mutable类型 目录 概述——对Foundation框架集合类的理解 NSArray NSDictionary N ...
- OC中Foundation框架之NSArray、NSMutableArray
NSArray概述 NSArray是OC中的数组类 NSArray特点 )只能存放任意OC对象,并且是有顺序的 )不能存放非OC对象,比如int/float/double/char/enum/stru ...
- OC Foundation框架—集合
Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向 ...
- OC Foundation框架—字符串
一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableA ...
- OC Foundation框架—结构体
一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文 ...
- iOS - OC Foundation 框架
前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
随机推荐
- 《RabbitMQ in action》
Producers create messages and publish (send) them to a broker server (RabbitMQ).What’s a message? A ...
- Tiny4412汇编流水灯代码,Tiny4412裸机LED操作[1]
从今天开始就正式进入到tiny4412的开发学习中了,今天主要看了一下Tiny4412的启动流程及存储器映射及Exynos4412数据手册,用汇编写了一个跑马灯程序(后续会有C语言版本的出来),先说一 ...
- 【HDOJ】1979 Fill the blanks
预处理+搜索剪枝.4*4的边界上的数字必须是奇数. /* 1979 */ #include <iostream> #include <sstream> #include < ...
- OM Price Lists
--select * --from org_organization_definitions; --execute fnd_client_info.set_org_context(111); -- ...
- kali获得已经安装的软件列表
有人说是用dpkg -l ,也有说是用dpkg --get-selections. debian:~# dpkg -l|grep install|wc -l2678debian:~# dpkg --g ...
- 函数flst_add_last
/********************************************************************//** Adds a node as the last no ...
- poj1823,3667
又来练线段树了…… poj1823题意很简单(明显的数据结构题),区间修改和统计最长连续空区间: 有了poj3468的基础,区间修改不是什么问题了,重点是求最长连续空区间:(弱弱的我纠结了好久) 在每 ...
- set xact_abort 用法
默认行为 默认为SET XACT_ABORT OFF,没有事务行为. SET XACT_ABORT ON SET XACT_ABORT ON分为两种: 1.总体作为一个事务,整体提交或整体回滚,格式为 ...
- Centos 下Nginx 自启动脚本
#!/bin/bash #ckconfig: NGINX_PATH=/web/container/nginx- NGINX_COMMAND=$NGINX_PATH/sbin/nginx NGINX_P ...
- Java [leetcode 26]Remove Duplicates from Sorted Array
题目描述: Given a sorted array, remove the duplicates in place such that each element appear only once a ...