OC-todolist项目

//

//  Todo.h

//  todolist

//

//  Created by zz

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import <Foundation/Foundation.h>


@interface Todo : NSObject


{

    NSString* subject;//主题

NSString* description;//描述

int priority;//优先级

NSDate* date;//日期


}


@property(nonatomic,copy)NSString* subject;

@property(nonatomic,copy)NSString* description;

@property(nonatomic,assign)int priority;

@property(nonatomic,copy)NSDate* date;

-(id)initwithsubject:(NSString*)_subject description:(NSString*)_description priority:(int)_priority date:(NSString*)_date;

-(void)setsubject:(NSString*)_subject;

-(void)setdescription:(NSString*)_description;

-(void)setpriority:(int)_priority;

-(void)SetDate:(NSDate*)_date;

-(void)dealloc;


- (NSString*)description;


@end




//

//  Todo.m

//  todolist

//

//  Created by zz

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import "Todo.h"


@implementation Todo


@synthesize subject;

@synthesize description;

@synthesize priority;

@synthesize date;



-(id)initwithsubject:(NSString*)_subject description:(NSString*)_description priority:(int)_priority date:(NSString*)_date{

    

    if(!_subject||!_description||_priority<0||!_date){

    

        [self release];

        return nil;

    }

    

    self=[super init];

    

    if(!self){

        

        return nil;

    

    }

    

    

    subject=[NSString stringWithString:_subject];

    description=[NSString stringWithString:_description];

    

    priority=_priority;

    

    NSDateFormatter * dm = [[NSDateFormatter alloc]init];

    [dm setDateFormat:@"yyyy-MM-dd"];

    date = [dm dateFromString:_date];

    

    return self;



}

-(void)setsubject:(NSString*)_subject{


     subject=[NSString stringWithString:_subject];


}

-(void)setdescription:(NSString*)_description{

     description=[NSString stringWithString:_description];

}

-(void)setpriority:(int)_priority{

      priority=_priority;

}

-(void)SetDate:(NSDate*)_date{

    date=[_date copy];

}

-(void)dealloc{


  

    [super dealloc];


}



- (NSString*)description{


    NSString* ns=[[NSString alloc]initWithFormat:@"subject is %@, description is %@, priority is %d,date is %@",subject,description,priority,date];


    return ns;

}


@end




//

//  Dolist.h

//  todolist

//

//  Created by zz

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import <Foundation/Foundation.h>


@class Todo;


@interface Dolist : NSObject


{

NSMutableArray* todoarray;

}


@property(nonatomic,copy)NSMutableArray* todoarray;

-(id)init;

-(void)Addtodo:(Todo*)atodo;

-(void)Removetodo:(NSInteger)index;

-(Todo *)todoatindex:(NSInteger)index;

-(NSUInteger)Count;

-(void)dealloc;

-(NSString*)description;

@end






//

//  Dolist.m

//  todolist

//

//  Created by zz

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import "Dolist.h"

#import "Todo.h"

@implementation Dolist


@synthesize todoarray;


-(id)init{


    self=[super init];

    if(!self){

    

        return nil;

    }

    

    todoarray=[[NSMutableArray alloc]init];

    

    return self;


}

-(void)Addtodo:(Todo*)atodo{


    

    [todoarray addObject:atodo];


}

-(void)Removetodo:(NSInteger)index{

    

    [todoarray removeObjectAtIndex:index];


}

-(Todo *)todoatindex:(NSInteger)index{


    return [todoarray objectAtIndex:index];

}

-(NSUInteger)Count{


    return  [todoarray count];

    

}

-(void)dealloc{


    

    [super dealloc];


}


-(NSString*)description{


    NSMutableString* ns=[[NSMutableString alloc]init];

    

    for(id item in todoarray){

    

        [ns appendFormat:@"%@\n",item];

    }

    

    return ns;

}


@end




//

//  TodoDb.h

//  todolist

//

//  Created by zz

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import <Foundation/Foundation.h>

@class Dolist;

@class Todo;

@interface TodoDb : NSObject <NSCoding>


{

    NSString* filename;

Dolist* todolist;


}


@property(nonatomic,copy)NSString* filename;

@property(nonatomic,copy)Dolist* todolist;

-(id)initwithfilename:(NSString*)filename;

-(void)Addtodo:(Todo*)atodo;

-(void)Removetodo:(NSInteger)index;

-(Todo *)todoatindex:(NSInteger)index;

-(NSUInteger)TodoDBCount;

-(void)dealloc;

-(void)save;

-(void)read;

-(NSString*)description;


-(void)encodeWithCoder:(NSCoder *)aCoder;

-(id)initWithCoder:(NSCoder *)aDecoder;


@end






//

//  TodoDb.m

//  todolist

//

//  Created by zz

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import "TodoDb.h"

#import "Todo.h"

#import "Dolist.h"


@implementation TodoDb


@synthesize filename;

@synthesize todolist;



-(id)initwithfilename:(NSString*)_filename{


    if(!_filename){

    

        [self release];

        return nil;

    }

    

    self.filename=[NSString stringWithString:_filename];

    

    todolist=[[Dolist alloc]init];

    

    return self;


}

-(void)Addtodo:(Todo*)atodo{

    

    [todolist Addtodo:atodo];


}

-(void)Removetodo:(NSInteger)index{


    [todolist Removetodo:index];


}

-(Todo *)todoatindex:(NSInteger)index{


   return  [todolist todoatindex:index];


}

-(NSUInteger)TodoDBCount{


    return [todolist Count];

}

-(void)dealloc{


    [super dealloc];

}

-(void)save{


 [NSKeyedArchiver archiveRootObject:[self description] toFile:filename];


}

-(void)read{


  todolist= [NSKeyedUnarchiver unarchiveObjectWithFile:filename];

    


    NSLog(@"%@",todolist);

    

}


-(NSString*)description{


    NSString* ns=[[NSString alloc]initWithFormat:@"%@",todolist];

    

    return ns;

    

}


-(void)encodeWithCoder:(NSCoder *)aCoder{


    [aCoder encodeObject:todolist forKey:@"todolist"];

    [aCoder encodeObject: filename forKey:@"filename"];

    

}

-(id)initWithCoder:(NSCoder *)aDecoder{


    if((self=[super init])){

        

        self.todolist=[aDecoder decodeObjectForKey:@"todolist"];

        self.filename=[aDecoder decodeObjectForKey:@"filename"];

        

    }

    

    return self;



}


@end






















  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值