This is ToDoList.m in view mode; [Download] [Up]
/* * ToDoList - list that sorts its elements based on the priority of the * ToDoItems that it contains * * You may freely copy, distribute and reuse the code in this example. * This code is provided AS IS without warranty of any kind, expressed * or implied, as to its fitness for any particular use. * * Copyright 1995 Ralph Zazula (rzazula@next.com). All Rights Reserved. * */ #import "ToDoList.h" #import "ToDoItem.h" #import <time.h> #import <stdlib.h> @implementation ToDoList static int toDoCompare(const void *x, const void *y) { ToDoItem *xi = *(ToDoItem **)x; ToDoItem *yi = *(ToDoItem **)y; long xp = [xi priority]; long yp = [yi priority]; /* sort by priority */ if(xp != yp) { return yp - xp; } /* items of similar priorty sort by creation date */ return [yi startDate] - [xi startDate]; } - sort { qsort((ToDoItem **)dataPtr, numElements, sizeof(id), toDoCompare); return self; } - insertObject:anObject at:(unsigned)index { if(![super insertObject:anObject at:index]) { return nil; } [self sort]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.