objective-C第十五章课后练习答案

第一题

#import "ElapsedDays.h"

@implementation ElapsedDays

-(unsigned long) elapsedDays:(NSDate *) theDate;
{
        unsigned long counts;
        NSDate *NowToday=[NSDate date];
        counts=NowToday.timeIntervalSince1970-theDate.timeIntervalSince1970;
        counts/=(60*60*24);
        return counts;
}
@end

#import <Foundation/Foundation.h>
#import "ElapsedDays.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
 ElapsedDays *Interval=[[ElapsedDays alloc]init];
        NSDateFormatter *formatter2=[[NSDateFormatter alloc]init];
     
        [formatter2 setDateFormat:@"YYYY-MM-dd HH-mm-ss"];

        NSDate *date3=[formatter2 dateFromString:@"2015-05-10 18:23:03"];
        NSLog(@"%@",date3);
        unsigned long day=[Interval elapsedDays : date3 ];
        NSLog(@"%lu",day);
        NSDate *dateNow=[NSDate date];
        NSLog(@"%@",dateNow);

    }
    return 0;
}

第二题、

第二问我用了几种方法进行的排序,选其一即可

-(void) lookup2:(NSString *)theName
{
    AddressBook *kolook=[[AddressBook alloc]init];
    int i;
    AddressCard *cc=NULL;
    for(i=0;i<_book.count;i++)
    {
        cc=_book[i];
        if ([kolook stringContentString:cc.name subString:theName])
            NSLog(@" the name has in %@",cc.name);
    }
}
-(void) sort
{
    NSArray *sortedString=[_book sortedArrayUsingSelector:@selector(compareName:)];
     _book=(NSMutableArray *)sortedString;
}
-(void) sort1
{
    [_book sortUsingSelector:@selector(compareName:)];
}
-(void) sort2
{
    for (NSUInteger i=0; i<_book.count; )
    {
        NSIndexSet *sortedString=
        [_book indexesOfObjectsPassingTest:
                ^(id obj1 , NSUInteger idx1, BOOL *stop)
                {
                    if(idx1>i)
                    {
                    
                        if ([obj1 compareName:_book[i]]==NSOrderedAscending)
                        {
                            NSLog(@"%@____%@",((AddressCard *)obj1).name,((AddressCard *)_book[i]).name);
                            *stop=YES;
                            return YES;
                        }
                        else
                            return NO;
                    }
                    return NO;
                }
        ];
        NSLog(@"______%lu____%lu",sortedString.count,sortedString.firstIndex);
        if(sortedString.count!=0)
        {
            NSLog(@"SWAP");
            id temp=nil;
            temp=_book[i];
            _book[i]=_book[sortedString.firstIndex];
            _book[sortedString.firstIndex]=temp;
        }
        else{
            i++;
        }
    }
    
}
-(void) sort3
{
    NSUInteger i;
    NSUInteger j;
    NSUInteger min=0;
    id temp=nil;
    
    for (i=0; i<_book.count-1; i++)
    {
        min=i;
        for (j=i+1; j<_book.count; j++)
        {
            if ([_book[min] compareName:_book[j]]==NSOrderedDescending)
                min=j;
        }
        if (min!=i)
        {
            temp=_book[i];
            _book[i]=_book[min];
            _book[min]=temp;
        }
    }
}

第三题、

-(AddressCard *) lookup3:(NSString *)theName
{
    
    for(int i=0;i<_book.count;i++)
    {
        if ([self stringContentString:((AddressCard *)_book[i]).name subString:theName])
        {
            if ((AddressCard *)_book[i]!=nil) {
                [(AddressCard *)_book[i] print];
            }
        }
    }
    return nil;
}



(第2问)

-(NSMutableArray *)sort5
{
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值