This is Expense.m in view mode; [Download] [Up]
/* * For legal stuff see the file COPYRIGHT */ #import <stdio.h> #import <stdlib.h> #import "Expense.h" extern void freeAndCopy( char **ptr, const char *str ); extern char *NXCopyStringBuffer(const char *buffer); @implementation Expense - init:(const char *)date description:(const char *)desc amount:(const float)amt { [self setDateString:date]; [self setDescription:desc]; amount = amt; return self; } - (void) freeDesc { if ( description ) { free( description ); description = NULL; } } - free { [self freeDesc]; return [super free]; } - setAmount:(float)value { amount = value; return self; } - setDateString:(const char *)str { freeAndCopy( &dateString, str ); return self; } - setDescription:(const char *)desc { [self freeDesc]; description = NXCopyStringBuffer(desc); return self; } - (const char *)dateString { return dateString; } - (const char *)description { return description; } - (float)amount { return amount; } /* * For use in comparisons, convert date such as 11/21/93 to a * single integer 932111. THIS SHOULD BE CACHED! (TBD) */ - (int)dateValue { int day, month, year; sscanf( dateString, "%d/%d/%d", &month, &day, &year ); return ( year * 10000 + month * 100 + day ); } - read:(NXTypedStream *) stream { NXReadTypes( stream, "**f", &description, &dateString, &amount ); return self; } - write:(NXTypedStream *) stream { NXWriteTypes( stream, "**f", &description, &dateString, &amount ); return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.