iOS study Day3

本日主要练习list的几个方法,有add object 和 排序输出。


main函数内容


#import <Foundation/Foundation.h>

#import "Fraction.h"

int main(int argc, const char * argv[])

{


    @autoreleasepool {

        Fraction *fra = [[Fraction alloc] initWithN:5 andD:1];

        [fra print];

        

        NSMutableArray *list = [NSMutableArray array];

        [list addObject:[[[Fraction alloc]initWithN:1 andD:5] autorelease]];

        [list addObject:[[[Fraction alloc]initWithN:1 andD:3] autorelease]];

        [list addObject:[[[Fraction alloc]initWithN:1 andD:2] autorelease]];

        [list addObject:[[[Fraction alloc]initWithN:1 andD:7] autorelease]];

        [list addObject:[[[Fraction alloc]initWithN:1 andD:17] autorelease]];

        [list addObject:[[[Fraction alloc]initWithN:1 andD:9] autorelease]];

        

        for (Fraction* fra in list) {

            

            [fra print];

        }NSLog(@" ");

        NSLog(@"**************************排序后");

        [list sortUsingSelector:@selector(fraComp:)];

        

        for (Fraction* fra in list) {

            [fra print];

        }

        

        NSLog(@" ");

        NSLog(@"倒序输出**************************");

        

        for (int i=(int)list.count;i>0;i--)

        {

            Fraction* frat = [list objectAtIndex:i-1];

            [frat print];

        }

        

        [fra release],fra=nil;

        

    }

    return 0;

}



//Fraction.h


#import <Foundation/Foundation.h>


@interface Fraction : NSObject


{

    int numerator;

    int denominator;

}


@property (nonatomic,assign) int numerator;

@property (nonatomic,assign) int denominator;


-(void)setNumerator:(int) n;

-(void)setDenominator:(int) d;

-(void)print;

-(Fraction*)initWithN:(int)n andD:(int)d;


-(NSComparisonResult)fraComp:(Fraction *)frac2;


@end


//fraction.m


#import "Fraction.h"


@implementation Fraction

@synthesize numerator,denominator;


-(void)setNumerator:(int) n

{

    numerator = n;

}

-(void)setDenominator:(int) d

{

    denominator = d ;

}

-(void)print

{

    NSLog(@"%i/%i",numerator,denominator);

}


-(Fraction*)initWithN:(int)n andD:(int)d

{

    if (self=[super init])

    {

        numerator = n ;

        denominator =d ;

    }

    return self;

    

}


-(NSComparisonResult)fraComp:(Fraction *)frac2

{

    double d1 = (double)numerator / denominator;

    double d2 = (double)frac2.numerator / frac2.denominator;

    

    if (d1<d2)

    {

        return NSOrderedAscending;

        

    }else if (d1>d2)

    {

        return NSOrderedDescending;

    }

    else

    {

        return NSOrderedSame;

    }

    

    

    

    return NSOrderedSame;

}


@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值