Ваши методы dealloc должны выглядеть следующим образом:
Для пользователя:
-dealloc
{
[firstName release];
[lastName release];
[role release];
[super dealloc];
}
Для роли:
-dealloc
{
[title release];
[description release];
[super dealloc];
}
roleId освобождать не нужнопотому что NSInteger на самом деле является typedef для примитивного целочисленного типа.Это также означает, что объявление вашего свойства неверно, оно должно быть:
@property (nonatomic, assign) NSInteger roleId;
Кроме того, NSString является неизменным и реализует протокол копирования, поэтому ваши свойства NSString должны быть copy
, а не retain
.например,
@property (nonatomic, copy) NSString *firstName;
Редактировать
Как указывает Бьёрн, интерфейс для роли должен быть:
@interface Role : NSObject {
NSInteger roleId; // not a pointer
NSString *title;
NSString *description;
}
@property (nonatomic, assign) NSInteger roleId;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *description;
@end