OC对数组排序的方法

方法一: 使用sortUsingSelector

如: [_cards sortUsingSelector:@selector(isSortByContactName:)];

[_cards sortUsingSelector:@selector(isSortBYPhoneNumber:)];

-(BOOL)isSortByContactName:(Card *)aCard
{
    if ([_contactName compare:[aCard contactName]] ==NSOrderedDescending) {
        return YES;
    }
    return NO;
}
-(BOOL)isSortBYPhoneNumber:(Card *)aCard
{
    if (_phoneNum>[aCard phoneNum]) {
        return YES;
    }
    return NO;
}

方法二: sortedArrayUsingComparator:

_seatInfoArray = [_seatInfoArray sortedArrayUsingComparator:^NSComparisonResult(SeatInfoModel *obj1, SeatInfoModel *obj2) {
            NSTimeInterval time1 = obj1.end_unixtime.doubleValue;
            NSTimeInterval time2 = obj2.end_unixtime.doubleValue;
            if (time1<time2) {
                return NSOrderedAscending;
            }
            else
            {
                return NSOrderedDescending;
            }
        }];

时间: 2024-08-09 04:12:29

OC对数组排序的方法的相关文章

OC中的内省方法初探

内省(Introspection)是对象揭示自己作为一个运行时对象的详细信息的一种能力.NSObject协议和类定义了很多内省方法,用于查询运行时信息,以便根据对象的特征进行识别. 在iOS开发过程中,有效的使用内省方法.有助于避免错误地进行消息派发.错误地假设对象相等.以及类似的问题.明智地使用内省可以使面向对象的程序更加高效和强壮. OC中的内省方法有: 1,isKindOfClass:检查本实例对象,是否是某个类的对象,包括继承的子类. 2,isMemberOfClass:检查本实例对象,

OC实例变量初始化方法

OC实例变量初始化方法1. 使用实例setter方法 默认初始化方法 + setName:xxx setAge:xxx2. 使用实例功能类方法,默认初始化方法 + setName:xxx age:xxx3.使用实例初始化方法 initWith开头的方法4.使用构造器 类名+With…以Person  Student两个类为例1. 使用实例 setter方法这是最麻烦的方法 @interface Person : NSObject { NSString *_name; NSString *_sex

整理数组去重与数组排序等方法

实用且比较简单的数组排序与数组去重的方法,也较好理解: 1.数组冒泡排序: var arr=["a",3,5,2,1,4,2,3,3,3,5,5,5,4]; function sort(arr){ //让数组中的元素俩俩进行比较,实现替换: for (var i = 0; i< arr.length; i++) { for (var j = 0; j < arr.length; j++) { if (arr[j] > arr[j + 1]) { var temp =

OC语法2——OC的类,方法,成员变量的创建

类的创建: 与Java不同的是,OC创建一个类需要两个文件(.h和.m文件) 1> xxx.h:声明文件.用于声明成员变量和方法.关键字@interface和@end成对使用. 声明文件只是声明该类里成员变量和方法的格式(返回值类型,参数类型等),并不会实现它们. 在OC中继承用冒号表示,所有类都是继承于NSObject的,所以Sudent:NSObject.(这是和Java不同的,Java中所有类都继承于Object,但不用每定义一个类都写明继承关系,所有类都是默认继承于Object类的).

个人总结诀窍----oc中对象作为方法连续,重点也是难点.

相信有不少初学者,oc中的对象作为方法连续传递在一两个对象的时候可能还好,多了可能就绕晕了...我接下来就分享一下我个人对这一块的知识的总结或心得或诀窍吧. 我觉得用"螳螂捕蝉黄雀在后"比较形象,关键点就一环套一环,怎么去打比方还是看个人理解了... 举个例子:一个顾客要去一家餐馆吃饭,餐馆有厨师,厨师有食材.以上有对象分别为:顾客,餐馆,厨师,食材; 一.先来理解这2段关于顾客的代码. #import <Foundation/Foundation.h> #import &

OC基础:继承.初始化方法,便利构造器

继承: 1.单向继承,一个类只能有一个父类,一个父类可以有多个子类. 2.单向继承,基类(根类)是OSObject 3.子类可以继承父类的属性和方法 当父类的方法不满足子类的需求时,子类可以重写父类的方法,重写父类的方法,在子类中不需要再次声明. 1.完全重写 2.部分重写   使用super 建立继承关系之后,子类可以继承父类的: 1.实例变量,@[email protected]修饰情况之下 2.公开的方法 一个方法如果在.h中声明了,那么这个方法就是公开的方法,如果没有声明,则是私有的.

李洪强iOS开发之OC[018]对象和方法之间的关系

// //  main.m //  18 - 对象和方法之间的关系 // //  Created by vic fan on 16/7/14. //  Copyright © 2016年 李洪强. All rights reserved. // /** * OC有参有返回值的方法 有参有返回值方法的声明 - (int)sum:(int)x andY:(int)y; - (int)sum:(int)x andY:(int)y{ return x+y; 关系: 1 对象作为方法的参数; 显示人的信息

OC中属性及方法

1.声明式属性    a.实例变量    b.声明属性        自动生成setter/getter方法        .h ->@property 属性类型 属性名;        .m ->@synthesize 属性名 = 实例变量名;    c.点语法2.IOS5中的属性    a.实例变量  省        会自动生成实例变量,实例变量名 等于 _属性名    b.声明属性        @property 属性类型 属性名;        @synthesize 属性名 =

OC工程调用Swift方法

1.建一个OC工程命名为SwiftOC.如图所示: 2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”,如图所示: 3.配置工程设置Defines Module 为Yes 设置Product Module Name 为当前工程名 此时系统会为工程创建一个“工程名-Swift.h”的文件,此文件不可手动创建,必须使用系统创建的. 4.创建一个Test2.swift