Objective-c之NSArray(NSMutableArray)

本文介绍Objective-C中数组和字典的基本操作,包括创建、遍历、复制及排序等,并展示了如何使用NSValue来存储复杂类型如NSRect。
/*---------------------------创建数组------------------------------*/
//NSArray *array = [NSArray alloc] initWithObjects:
@"One",@"Two",@"Three",@"Four",nil];

self.dataArray
= array;
[array release];

//- (unsigned) Count;数组所包含对象个数;
NSLog(@"self.dataArray cound:%d",[self.dataArray count]);

//- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;
NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);


/*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/

//arrayWithArray:
//NSArray *array1 = [NSArray alloc] init];
NSMutableArray *MutableArray = [NSMutableArray alloc] init];
NSArray
*array = [NSArray arrayWithObjects:
@"a",@"b",@"c",nil];
NSLog(
@"array:%@",array);
MutableArray
= [NSMutableArray arrayWithArray:array];
NSLog(
@"MutableArray:%@",MutableArray);

array1
= [NSArray arrayWithArray:array];
NSLog(
@"array1:%@",array1);


//Copy

//id obj;
NSMutableArray *newArray = [NSMutableArray alloc] init];
NSArray
*oldArray = [NSArray arrayWithObjects:
@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];

NSLog(
@"oldArray:%@",oldArray);
for(int i = 0; i < [oldArray count]; i++)
{
obj
= [oldArray objectAtIndex:i] copy];
[newArray addObject: obj];
}
//
NSLog(@"newArray:%@", newArray);
[newArray release];


//快速枚举

//NSMutableArray *newArray = [NSMutableArray alloc] init];
NSArray *oldArray = [NSArray arrayWithObjects:
@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];
NSLog(
@"oldArray:%@",oldArray);

for(id obj in oldArray)
{
[newArray addObject: obj];
}
//
NSLog(@"newArray:%@", newArray);
[newArray release];


//Deep copy

//NSMutableArray *newArray = [NSMutableArray alloc] init];
NSArray *oldArray = [NSArray arrayWithObjects:
@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];
NSLog(
@"oldArray:%@",oldArray);
newArray
= (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);
NSLog(
@"newArray:%@", newArray);
[newArray release];


//Copy and sort

//NSMutableArray *newArray = [NSMutableArray alloc] init];
NSArray *oldArray = [NSArray arrayWithObjects:
@"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];
NSLog(
@"oldArray:%@",oldArray);
NSEnumerator
*enumerator;
enumerator
= [oldArray objectEnumerator];
id obj;
while(obj = [enumerator nextObject])
{
[newArray addObject: obj];
}
[newArray sortUsingSelector:@selector(compare:)];
NSLog(
@"newArray:%@", newArray);
[newArray release];



/*---------------------------切分数组------------------------------*/

//从字符串分割到数组- componentsSeparatedByString:
NSString *string = [NSString alloc] initWithString:@"One,Two,Three,Four"];
NSLog(
@"string:%@",string);
NSArray
*array = [string componentsSeparatedByString:@","];
NSLog(
@"array:%@",array);
[
string release];


//从数组合并元素到字符串- componentsJoinedByString:
NSArray *array = [NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];
NSString
*string = [array componentsJoinedByString:@","];
NSLog(
@"string:%@",string);



/*******************************************************************************************
NSMutableArray
******************************************************************************************
*/
/*---------------给数组分配容量----------------*/
//NSArray *array;
array = [NSMutableArray arrayWithCapacity:20];



/*--------------在数组末尾添加对象----------------*/
//- (void) addObject: (id) anObject;
//NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",nil];
[array addObject:
@"Four"];
NSLog(
@"array:%@",array);



/*--------------删除数组中指定索引处对象----------------*/
//-(void) removeObjectAtIndex: (unsigned) index;
//NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",nil];
[array removeObjectAtIndex:
1];
NSLog(
@"array:%@",array);



/*-------------数组枚举---------------*/
//- (NSEnumerator *)objectEnumerator;从前向后
//NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",nil];
NSEnumerator
*enumerator;
enumerator
= [array objectEnumerator];

id thingie;
while (thingie = [enumerator nextObject]) {
NSLog(
@"thingie:%@",thingie);
}


//- (NSEnumerator *)reverseObjectEnumerator;从后向前
//NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",nil];
NSEnumerator
*enumerator;
enumerator
= [array reverseObjectEnumerator];

id object;
while (object = [enumerator nextObject]) {
NSLog(
@"object:%@",object);
}


//快速枚举
//NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"One",@"Two",@"Three",nil];
for(NSString *string in array)
{
NSLog(
@"string:%@",string);
}



/*******************************************************************************************
NSDictionary
******************************************************************************************
*/

/*------------------------------------创建字典------------------------------------*/
//- (id) initWithObjectsAndKeys;

//NSDictionary *dictionary = [NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];
NSString *string = [dictionary objectForKey:@"One"];
NSLog(
@"string:%@",string);
NSLog(
@"dictionary:%@",dictionary);
[dictionary release];


/*******************************************************************************************
NSMutableDictionary
******************************************************************************************
*/

/*------------------------------------创建可变字典------------------------------------*/
//创建
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];

//添加字典
[dictionary setObject:@"One" forKey:@"1"];
[dictionary setObject:
@"Two" forKey:@"2"];
[dictionary setObject:
@"Three" forKey:@"3"];
[dictionary setObject:
@"Four" forKey:@"4"];
NSLog(
@"dictionary:%@",dictionary);

//删除指定的字典
[dictionary removeObjectForKey:@"3"];
NSLog(
@"dictionary:%@",dictionary);


/*******************************************************************************************
NSValue(对任何对象进行包装)
******************************************************************************************
*/

/*--------------------------------将NSRect放入NSArray中------------------------------------*/
//将NSRect放入NSArray中
NSMutableArray *array = [NSMutableArray alloc] init];
NSValue
*value;
CGRect rect
= CGRectMake(0, 0, 320, 480);
value
= [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];
[array addObject:value];
NSLog(
@"array:%@",array);

//从Array中提取
value = [array objectAtIndex:0];
[value getValue:
&rect];
NSLog(
@"value:%@",value);


/*******************************************************************************************
从目录搜索扩展名为jpg的文件
******************************************************************************************
*/

//NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *home;
home
= @"../Users/";

NSDirectoryEnumerator
*direnum;
direnum
= [fileManager enumeratorAtPath: home];

NSMutableArray
*files = [NSMutableArray alloc] init];

//枚举
NSString *filename;
while (filename = [direnum nextObject]) {
if([filename pathExtension] hasSuffix:@"jpg"]){
[files addObject:filename];
}
}

//快速枚举
//for(NSString *filename in direnum)
//{
// if([filename pathExtension] isEqualToString:@"jpg"]){
// [files addObject:filename];
// }
//}
NSLog(@"files:%@",files);

//枚举
NSEnumerator *filenum;
filenum
= [files objectEnumerator];
while (filename = [filenum nextObject]) {
NSLog(
@"filename:%@",filename);
}

//快速枚举
//for(id object in files)
//{
// NSLog(@"object:%@",object);
//}

文章来自:http://blog.sina.com.cn/s/blog_4adf31ea0100nlnp.html
标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值