iOS study Day3

来源:互联网 发布:js设置radio不可用 编辑:程序博客网 时间:2024/05/20 07:13

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


main函数内容


#import <Foundation/Foundation.h>

#import "Fraction.h"

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

{


    @autoreleasepool {

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

        [fraprint];

        

        NSMutableArray *list = [NSMutableArrayarray];

        [listaddObject:[[[Fractionalloc]initWithN:1andD:5] autorelease]];

        [listaddObject:[[[Fractionalloc]initWithN:1andD:3] autorelease]];

        [listaddObject:[[[Fractionalloc]initWithN:1andD:2] autorelease]];

        [listaddObject:[[[Fractionalloc]initWithN:1andD:7] autorelease]];

        [listaddObject:[[[Fractionalloc]initWithN:1andD:17] autorelease]];

        [listaddObject:[[[Fractionalloc]initWithN:1andD:9] autorelease]];

        

       for (Fraction* frain list) {

            

            [fraprint];

        }NSLog(@" ");

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

        [listsortUsingSelector:@selector(fraComp:)];

        

       for (Fraction* frain list) {

            [fraprint];

        }

        

       NSLog(@" ");

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

        

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

        {

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

            [fratprint];

        }

        

        [frarelease],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=[superinit])

    {

       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)

    {

        returnNSOrderedAscending;

        

    }elseif (d1>d2)

    {

        returnNSOrderedDescending;

    }

   else

    {

        returnNSOrderedSame;

    }

    

    

    

    returnNSOrderedSame;

}


@end



0 0
原创粉丝点击