<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">数组的初始化</span>
//一般初始化
NSArray *array = [[NSArray alloc]initWithObjects:@"1",@"2",@"3", nil];
NSLog(@"%@",array);
//便利初始化
NSArray *array1 = [NSArray arrayWithObjects:@"3",@"4",@"5", nil];
NSLog(@"%@",array1);
数组的取值
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSLog(@"%@",[array objectAtIndex:2]); // 3
//获取指定位置的元素
NSString *string =[array objectAtIndex:1];
NSLog(@"%@",string);//输出第二元素 2
// 获取数组中第一个索引未知的元素
id firstObjiect = [array firstObject];
NSLog(@"%@",firstObjiect); // 1
// 获取数组中最后索引位置的元素
id lastObject = [array lastObject];
//用id 和 NSString是一样的效果
NSString *last = [array lastObject];
NSLog(@"%@",lastObject); //4
NSLog(@"%@",last); // 4
数组元素的增加
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
//存入一个对象
NSArray *anotherArray = [array arrayByAddingObject:@"6"];
NSLog(@"%@",array); //1,2,3,4,
NSLog(@"%@",anotherArray); //1,2,3,4,6
//存入多个对象
NSArray *array1 = [NSArray arrayWithObjects:@"11",@"12",@"13", nil];
anotherArray = [array1 arrayByAddingObjectsFromArray:array];//前面的在前面后面的在后面,后面的接在前面的后面
NSLog(@"%@",anotherArray); //11,12,13
数组元素的查找
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
//查询对象在数组中的位置
//NSUInteger(为啥用这个啊,我用NSInteher还是一样的啊)
//通过返回结果可以拍判定元素是否存在,入股破不存在就返回NSNotFound
NSUInteger index = [array indexOfObject:@"5"];
NSLog(@"%ld",NSNotFound); //没找到的话就会输出和这个一样的值
NSLog(@"%lu",index);
//查询对象是否存在数组中
NSArray *array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
BOOL isContain = [array1 containsObject:@"5"];
NSLog(@"contain 5 %@ ",isContain ? @"yes" : @"no");
数组的排序:(一般排序)
NSArray *array = [[NSArray alloc]initWithObjects:@"5",@"4",@"3",@"2",@"1", nil];
NSArray *sorteArray = [array sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",array);
NSLog(@"%@",sorteArray);
数组的排序:(给类的变量排序)
//思考:数组中包含5个Person1,排序数组,按照Person1年龄从小到大排序
Person1 *person1 = [[Person1 alloc]initWithName:@"person1" age:19];
Person1 *person2 = [[Person1 alloc]initWithName:@"person2" age:18];
Person1 *person3 = [[Person1 alloc]initWithName:@"person3" age:17];
Person1 *person4 = [[Person1 alloc]initWithName:@"person4" age:16];
Person1 *person5 = [[Person1 alloc]initWithName:@"person5" age:15];
NSArray *array = [NSArray arrayWithObjects:person1,person2,person3,person4,person5, nil];
NSLog(@"%@",array);
NSArray *sorteArray = [array sortedArrayUsingSelector:@selector(comparAge:)];
//其中 comparAge 是在Person1里面自定义的(升序方法)
NSLog(@"%@",sorteArray);
Person1.m
//
// Person1.m
// 12.18
//
// Created by lanqs on 14/12/19.
// Copyright (c) 2014年 . All rights reserved.
//
#import "Person1.h"
@implementation Person1
- (id)initWithName:(NSString *)name age:(NSInteger)age{
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}
- (void)setAge:(NSInteger)age{
_age = age;
}
- (NSInteger)age{
return _age;
}
- (NSComparisonResult)comparAge:(Person1 *)person{
NSComparisonResult result;
//相等
if (_age == [person age]) {
result = NSOrderedSame;
}else if (_age > [person age]){
result = NSOrderedDescending;
}else{
result = NSOrderedAscending;
}
return result;
}
-(NSString *)description{
return [NSString stringWithFormat:@"<Person : %p>, name = %@ , age = %ld",self,_name,_age];
}
@end
Person.h
//
// Person1.h
// 12.18
//
// Created by lanqs on 14/12/19.
// Copyright (c) 2014年 . All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person1 : NSObject{
NSString *_name;
NSInteger _age;
}
- (id)initWithName:(NSString *)name age:(NSInteger)age;
- (NSComparisonResult)comparAge:(Person1 *)person;
- (void)setAge:(NSInteger)age;
- (NSInteger)age;
@end