数组 NSArray 排序 数组的KVC,KVO
来源:互联网 发布:matlab 最优化 编辑:程序博客网 时间:2024/06/07 03:21
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *array = [NSArray arrayWithObjects:@"你好",@"ios",@"安卓",@"HTML",@"YINGYU",@"迅速", nil]; NSLog(@"第一个元素为%@",[array objectAtIndex:0]); NSLog(@"索引为1的元素%@",[array objectAtIndex:1]); NSLog(@"最后一个元素:%@",[array lastObject]); //索引从3-5的元素组成的新的集合 NSArray *array1 = [array objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(3, 3)]]; NSLog(@"%@",array1); //获取元素在集合中的位置 NSLog(@"HTML的位置为:%ld",[array indexOfObject:@"HTML"]); //获取元素在集合指定范围中的位置 NSLog(@"在2~4范围内HTML的位置为:%ld",[array indexOfObject:@"HTML" inRange:NSMakeRange(2, 3)]); //向数组增加元素 array = [array arrayByAddingObject:@"我是"]; array = [array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"PHP",@"雄鹰",@"小鸟",@"跳跃", nil]]; for (int i = 0; i<array.count; i++) { NSLog(@"%@",[array objectAtIndex:i]); //上面代码可以简化为 //NSLog(@"%@",array[i]); } //获取array数组中索引为5~8处的所有元素 NSArray *array2 = [array subarrayWithRange:NSMakeRange(5, 3)]; //将nsarray写入文件 [array2 writeToFile:@"arrayFile.txt" atomically:YES]; } return 0;}
输出为:
2016-02-29 09:07:49.742 数组[2626:155312] 第一个元素为你好2016-02-29 09:07:49.743 数组[2626:155312] 索引为1的元素ios2016-02-29 09:07:49.743 数组[2626:155312] 最后一个元素:迅速2016-02-29 09:07:49.743 数组[2626:155312] ( HTML, YINGYU, "\U8fc5\U901f")2016-02-29 09:07:49.743 数组[2626:155312] HTML的位置为:32016-02-29 09:07:49.743 数组[2626:155312] 在2~4范围内HTML的位置为:32016-02-29 09:07:49.743 数组[2626:155312] 你好2016-02-29 09:07:49.743 数组[2626:155312] ios2016-02-29 09:07:49.743 数组[2626:155312] 安卓2016-02-29 09:07:49.743 数组[2626:155312] HTML2016-02-29 09:07:49.743 数组[2626:155312] YINGYU2016-02-29 09:07:49.743 数组[2626:155312] 迅速2016-02-29 09:07:49.743 数组[2626:155312] 我是2016-02-29 09:07:49.744 数组[2626:155312] PHP2016-02-29 09:07:49.744 数组[2626:155312] 雄鹰2016-02-29 09:07:49.744 数组[2626:155312] 小鸟2016-02-29 09:07:49.744 数组[2626:155312] 跳跃Program ended with exit code: 0
对数组进行排序:
//对数组进行排序#import <Foundation/Foundation.h>//定义一个比较函数NSInteger intSort (id num1,id num2, void *context){ int v1 = [num1 intValue]; int v2 = [num2 intValue]; if (v1<v2) return NSOrderedAscending; else if (v1>v2) return NSOrderedDescending; else return NSOrderedSame;}int main(int argc, const char * argv[]) { @autoreleasepool { //初始化一个数组对象 NSArray *arr1 = [NSArray arrayWithObjects:@"OC",@"JAVA",@"HTML",@"Orcal",@"JSP",@"PUSH",@"POP", nil]; //使用集合元素的compare:方法进行排序 arr1 = [arr1 sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"1、%@",arr1); //继续初始化一个数组对象 NSArray *arr2 = [NSArray arrayWithObjects:[NSNumber numberWithInt:20],[NSNumber numberWithInt:29],[NSNumber numberWithInt:40],[NSNumber numberWithInt:-4],[NSNumber numberWithInt:59] ,nil]; NSLog(@"2、%@",[arr2 sortedArrayUsingSelector:@selector(compare:)]); //使用sort方法进行排序 arr2 = [arr2 sortedArrayUsingFunction:intSort context:nil]; NSLog(@"3、%@",arr2); //使用代码块对集合进行元素排序 NSArray *arr3 = [arr2 sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { //该代码块就是根据集合元素的intValue进行比较 if ([obj1 intValue] > [obj2 intValue]) { return NSOrderedDescending; } if ([obj1 intValue] < [obj2 intValue]) { return NSOrderedAscending; } return NSOrderedSame; }]; NSLog(@"4、%@",arr3); } return 0;}
数组的KVC KVO
程序清单:LYXUser.h
#import <Foundation/Foundation.h>@interface LYXUser : NSObject@property(nonatomic,copy)NSString *name;@property(nonatomic,copy)NSString *pass;-(id)initWithName:(NSString *)name pass:(NSString *)pass;@end
程序清单:LYXUser.m
#import "LYXUser.h"@implementation LYXUser-(id)initWithName:(NSString *)aname pass:(NSString *)apass{ if (self = [super init]) { _name = aname; _pass = apass; } return self;}@end
程序清单:main.m
#import <Foundation/Foundation.h>#import "LYXUser.h"int main(int argc, const char * argv[]) { @autoreleasepool { NSArray *array = [NSArray arrayWithObjects: [[LYXUser alloc]initWithName:@"xiaohua" pass:@"afd"], [[LYXUser alloc]initWithName:@"xiaolie" pass:@"afd"], [[LYXUser alloc]initWithName:@"lili" pass:@"hahah"], [[LYXUser alloc]initWithName:@"zhende" pass:@"haoxiang"],nil]; id arr = [array valueForKey:@"name"]; NSLog(@"%@",arr); [array setValue:@"新名字" forKey:@"name"]; NSLog(@"%@",array); id arr1 = [array valueForKey:@"name"]; NSLog(@"%@",arr1); } return 0;}
打印:
2016-02-29 17:13:51.767 数组[23070:2218035] ( xiaohua, xiaolie, lili, zhende)2016-02-29 17:13:51.767 数组[23070:2218035] ( "\U65b0\U540d\U5b57", "\U65b0\U540d\U5b57", "\U65b0\U540d\U5b57", "\U65b0\U540d\U5b57")2016-02-29 17:13:51.767 数组[23070:2218035] ( "\U65b0\U540d\U5b57", "\U65b0\U540d\U5b57", "\U65b0\U540d\U5b57", "\U65b0\U540d\U5b57")Program ended with exit code: 0
4 0
- 数组 NSArray 排序 数组的KVC,KVO
- ios数组(NSArray)的排序
- KVC 和 KVO 监听容器类(数组等)的变化
- 数组排序-NSArray
- NSArray / NSMutArray 数组排序
- NSArray演练-数组排序
- NSArray数组内容排序
- NSArray 数组排序 block
- NSArray数组随机排序
- object c NSArray 数组的排序
- OC-041.NSArray的数组排序
- NSArray数组的遍历
- IOS基础学习笔记三:KVC和KVO数组的整体操作
- iOS几种简单有效的数组NSArray排序方法
- KVO & KVC 的比较 - KVO
- NSArray----数组
- 数组NSArray
- NSArray - 数组
- Android事件传递机制 源码分析
- win7/win8/win10
- android中一个应用多图标入口的写法
- Study Note: Schedule Optimisation and math_intrinsic in CUDA Programming
- oracle 实例的增量统计信息
- 数组 NSArray 排序 数组的KVC,KVO
- UiAutomator的使用过程
- iOS9 UIAlertController简单使用代码
- 图片轮播
- Hadoop Yarn 框架原理及运作机制
- redis订阅和发布
- Hello,CSDN
- Google Java Style 编程风格指南 中文版
- iOS下的实际网络连接状态检测