//
// 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