Programmieren mit Swift - Für macOS und iOS
Programmieren mit Swift - Für macOS und iOS
Das Model ToDoItem

Der erste Schritt zum fertigen Produkt soll das Datenmodell sein, also eine Klasse, welche eine zu erledigenden Aufgabe speichern kann. Die Klasse soll ToDoItem heissen und ist wie immer eine ganz normale Objective-C Klasse. Fügen sie daher eine neue Klasse dem Projekt hinzu und ändern Sie die zwei zugehörigen Dateien wie folgt.

ToDoItem.h
#import <Cocoa/Cocoa.h>

@interface ToDoItem : NSObject {

bool isFinished;
NSDate *timestamp;
NSNumber *priority;
NSString *headline;
NSString *note;
}

@property bool isFinished;
@property (retain) NSDate *timestamp;
@property (retain) NSNumber *priority;
@property (retain) NSString *headline;
@property (retain) NSString *note;


@end
ToDoItem.m
#import "ToDoItem.h"

@implementation ToDoItem

@synthesize isFinished;
@synthesize timestamp;
@synthesize priority;
@synthesize
headline;
@synthesize note;

@end
Diese Klasse wird nur als Datenspeicher verwendet, sie enthält ausschließlich Instanzvariablen und Eigenschaften (properties), um automatisch Accessor-Methoden zu generieren.

isFinished gibt an, ob eine Aufgabe erledigt ist oder nicht. Da es nur zwei Möglichkeiten gibt, reicht ein bool als Datentyp vollkommen aus. Da es sich bei isFinished nicht um einen Objekttyp handelt, benötigt das zugehörige Property auch kein retain.

timestamp soll angeben, wenn diese Aufgabe angelegt wurde und dafür eignet sich ein NSDate besonders gut. Weitere Datumsangaben könnten festlegen, wann eine Aufgabe erledigt sein muss, aber ein Wert soll für dieses Beispiel reichen. Sie können das Programm später sehr leicht erweitern.

Die Eigenschaft priority soll die Priorität der Aufgabe festlegen. Die Priorität wird später ein Wert von 0 bis 5;

headline ist die Überschrift/Kurzfassung der Aufgabe, die mit einigen anderen Werten in einer Tabelle angezeigt wird.

Die komplette Aufgabenbeschreibung wird in der Eigenschaft note gesichert. Diese Notiz wird in einer gesonderten Detailansicht dargestellt, die aber erst in späteren Schritten dem Programm hinzugefügt wird.

nächste Seite