#import <Foundation/Foundation.h>
#import "AV.h"
#pragma mark 数组声明
void arrayTest(){
// 创建一个空数组
NSArray *arr1 = [NSArray array];
// 创建有一个元素的数组
NSArray *arr2 = [NSArray arrayWithObject:@"hello"];
// 创建有多个元素的数组
NSArray *arr3 = [NSArray arrayWithObjects:@"hello", @"world", nil];
// 查看元素个数
NSUInteger num = [arr3 count];
NSLog(@"%lu", num);
}
#pragma mark 数组的使用
void arrayUse(){
NSArray *arr = [NSArray arrayWithObjects:@"苍井空", @"饭岛爱", @"小泽玛利亚", nil];
// 数组中的最后一个元素
NSLog(@"数组中的最后一个元素是:%@", [arr lastObject]);
// 获取元素在数组中的位置,从0开始索引
NSString *str1 = @"饭岛爱";
NSLog(@"饭岛爱所在的位置是:%lu", [arr indexOfObject:str1]);
// 在指定范围内查找元素,返回元素的位置
NSString *str3 = @"苍井空";
NSRange range = {0, 2};
NSLog(@"%@在指定范围内的是否存在%lu", str3, [arr indexOfObject:str3 inRange:range]);
// 查看数组中是否包含了某个元素
NSString *str2 = @"苍井空";
if([arr containsObject:str2]){
NSLog(@"数组包含了元素:%@", str2);
}
// 让数组中的所有对象都执行某个方法
AV *a1 = [[AV alloc] initWithName:@"苍井空"];
AV *a2 = [[AV alloc] initWithName:@"武藤兰"];
AV *a3 = [[AV alloc] initWithName:@"饭岛爱"];
NSArray *list = [NSArray arrayWithObjects:a1, a2, a3, nil];
[list makeObjectsPerformSelector:@selector(yamiedie)];//数组中的对象分别调用了yamiedie这个方法,不带参数
[list makeObjectsPerformSelector:@selector(eat:) withObject:@"二两韭菜包子"];//带参数,且只支持一个参数
}
#pragma mark 遍历数组
void arrayLoop(){
NSArray *list = [NSArray arrayWithObjects:@"Swift", @"PHP", @"JavaScript", @"Python", nil];
// for循环遍历
NSUInteger num = [list count];
for (int i = 0; i<num; i++) {
id obj = [list objectAtIndex:i];
NSLog(@"for循环:%i->%@", i, obj);
}
// for in循环
for (id obj in list) {
NSLog(@"forin循环:%@", obj);
}
// block遍历 推荐
[list enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"block遍历:%lu->%@", idx, obj);
}];
// 迭代器遍历
NSEnumerator *loop = [list objectEnumerator];
NSEnumerator *loop2 = [list reverseObjectEnumerator];// 反向的迭代器
id obj = nil;
while (obj = [loop2 nextObject]) {
NSLog(@"迭代器遍历:%@", obj);
}
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
arrayTest();
arrayUse();
arrayLoop();
}
return 0;
}
【OC】数组相关
最新推荐文章于 2021-05-23 13:44:04 发布