OC-NSArray

来源:互联网 发布:人文社会科学类软件 编辑:程序博客网 时间:2024/05/17 01:52
<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


1 0
原创粉丝点击