#import <Foundation/Foundation.h>
#import "Student.h"
创建一个数组
void
// 创建一个空的数组
NSArray *array = [NSArray array];
// 创建有1个元素的数组
NSArray arrayWithObject:@"123"];
// 创建有多个元素的数组
NSArray arrayWithObjects:@"a", @"b", @"c", nil];
int count = [array count];
// count = array.count;
NSLog(@"%i", count);
}
数组的简单使用
void
NSObject *obj = [[NSObject alloc] init];
NSArray *array = [NSArray arrayWithObjects:@"a", @"b", @"c" , obj, nil];
// 判断是否包含了某个元素
if ([array containsObject:@"a"]) {
NSLog(@"包含了字符串a");
}
NSString *last = [array lastObject];
NSLog(@"last=%@", last);
NSString *str = [array objectAtIndex:1];
NSLog(@"%@", str);
int index = [array indexOfObject:@"c"];
NSLog(@"index=%i", index);
release];
}
数组的内存管理
void
// 1
Student *stu1 = [[Student alloc] init];
Student *stu2 = [[Student alloc] init];
Student *stu3 = [[Student alloc] init];
NSLog(@"stu1:%zi", [stu1 retainCount]);
// 当把一个对象塞进数组中时,这个对象的计数器会加1,也就是说数组会对它做一次retain操作
// 2
NSArray *array = [[NSArray alloc] initWithObjects:stu1, stu2, stu3, nil];
NSLog(@"stu1:%zi", [stu1 retainCount]);
NSLog(@"count=%zi", array.count);
// 1
release];
release];
release];
// 数组被销毁的时候,会对内部的所有元素都做一次release操作
// 0
release];
}
给数组里面的元素发送消息
void
Student *stu1 = [Student student];
Student *stu2 = [Student student];
Student *stu3 = [Student student];
NSArray *array = [NSArray arrayWithObjects:stu1, stu2, stu3, nil];
// 让数组里面的所有对象都调用test方法
// [array makeObjectsPerformSelector:@selector(test)];
[array makeObjectsPerformSelector:@selector(test2:) withObject:@"123"];
}
遍历数组1
void
Student *stu1 = [Student student];
NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
int count = array.count;
for (int i = 0; i<count; i++) {
// id == void *
id obj = [array objectAtIndex:i];
NSLog(@"%i-%@", i, obj);
}
}
遍历数组2
void
Student *stu1 = [Student student];
NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
// 快速遍历
int i =0;
for (id obj in
NSLog(@"%i-%@", i, obj);
i++;
}
}
遍历数组3
void
Student *stu1 = [Student student];
NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
[array enumerateObjectsUsingBlock:
id obj, NSUInteger idx, BOOL
NSLog(@"%i-%@", idx, obj);
// 如果索引为1,就停止遍历
if (idx == 1) {
// 利用指针修改外面BOOL变量的值
YES;
}
}];
}
遍历数组4
void
Student *stu1 = [Student student];
NSArray *array = [NSArray arrayWithObjects:stu1, @"1", @"2", @"3", nil];
// 获取数组的迭代器
// NSEnumerator *enumerator = [array objectEnumerator];
// 反序迭代器(从尾部开始遍历元素)
NSEnumerator *enumerator = [array reverseObjectEnumerator];
// allObjects是取出没有被遍历过的对象
NSArray *array2 = [enumerator allObjects];
NSLog(@"array2:%@", array2);
// 获取下一个需要遍历的元素
id obj = nil;
while (obj = [enumerator nextObject]) {
NSLog(@"obj=%@", obj);
}
}
int main(int argc, const char
{
@autoreleasepool {
arrayFor4();
}
return 0;
}
OC之【NSArray使用】
原创wx6392bc05d177b 博主文章分类:【Objective-C】 ©著作权
©著作权归作者所有:来自51CTO博客作者wx6392bc05d177b的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
shell脚本之sed的使用
sed的具体使用方法
sed 正则 bash -
iOS开发OC基础:OC数组对象NSArray的常用方法
iOS开发的一些OC基础,NSArray的常用方法介绍及例子
oc数组 nsarray nsarray方法 -
招投标python博弈论模型代码
翻译原文:Game Theory Attribution: The Model You've Probably Never Heard Of - Clearcode Blog What Is Game Theory?"博弈论"主要研究聪明理性决策者之间的冲突与合作的数学模型博弈论应用于许多不同的领域,包括经济学、心理学、政治学、扑克、生物学和计算机科学。博弈论既可用于竞争
招投标python博弈论模型代码 博弈论66个经典例子 博弈论66个经典例子pdf Game 全排列