Используя перечисление typedef в моем объекте Class

У меня есть класс People, который содержит различные сведения о человеке. Я хотел бы иметь возможность определить, что это за человек, поэтому я подумал, что попробую использовать для этого перечисление typedef, так как я видел это раньше, и это кажется самым чистым решением. Но я не уверен, как это объявить, а затем превратить в свойство.

.h

typedef enum {
    kPersonTypeFaculty,
    kPersonTypeStaff,
    kPersonTypeSearch
} personType;

@interface Person : NSObject {
    NSString *nameFirst;
    NSString *nameLast;
    NSString *email;
    NSString *phone;
    NSString *room;
    NSString *status;
    NSString *building;
    NSString *department;
    NSString *imageURL;
    NSString *degree;
    NSString *position;
    NSString *bio;
    NSString *education;
}

@property (nonatomic, retain) NSString *nameFirst;
@property (nonatomic, retain) NSString *nameLast;
@property (nonatomic, retain) NSString *email;
@property (nonatomic, retain) NSString *phone;
@property (nonatomic, retain) NSString *room;
@property (nonatomic, retain) NSString *status;
@property (nonatomic, retain) NSString *building;
@property (nonatomic, retain) NSString *department;
@property (nonatomic, retain) NSString *imageURL;
@property (nonatomic, retain) NSString *degree;
@property (nonatomic, retain) NSString *position;
@property (nonatomic, retain) NSString *bio;
@property (nonatomic, retain) NSString *education;

@end

.m

#import "Person.h"


@implementation Person

@synthesize nameFirst, nameLast, email, phone, room, status, building, department, imageURL, degree, position, bio, education;

- (void)dealloc {
    [nameFirst release];
    [nameLast release];
    [email release];
    [phone release];
    [room release];
    [status release];
    [building release];
    [department release];
    [imageURL release];
    [degree release];
    [position release];
    [bio release];
    [education release];
    [super dealloc];
}

@end

Я хочу иметь возможность делать что-то вроде:

Person *person = [[[Person alloc] init] autorelease];
person.nameFirst = @"Steve";
person.nameLast = @"Johnson";
person.personType = kPersonTypeStaff;

Я упускаю важную часть эта идея?

12
задан GEOCHET 19 August 2011 в 19:08
поделиться