OC-NSArray

<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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值