Я запустил свое приложение, жестко закодировав некоторые статические данные (информацию об отеле) внутри моей модели данных, чтобы они были доступны везде в моем приложении.Это было нормально, пока список не начал расти (все еще статические данные).Я пытаюсь выяснить, как воссоздать жестко закодированные данные, используя вместо этого plist.Кажется прямолинейным, но не может понять это.
Мой заголовок объекта "hotel":
@interface Hotel : NSObject {}
@property (nonatomic, assign) int HotelID;
@property (nonatomic, copy) NSString* Name;
@property (nonatomic, copy) int Capacity;
@end
Реализация моего объекта "hotel":
@implementation Hotel
@synthesize HotelID, Name, Capacity;
-(void)dealloc {
[Name release];
[Capacity release];
}
Объект "Отель" управляется моей DataModel.Заголовок для DataModel:
@class Hotel;
@interface DataModel : NSObject {}
-(int)hotelCount;
Реализация DataModel:
#import "DataModel.h"
#import "Hotel.h"
// Private methods
@interface DataModel ()
@property (nonatomic, retain) NSMutableArray *hotels;
-(void)loadHotels;
@end
@implementation DataModel
@synthesize hotels;
- (id)init {
if ((self = [super init])) {
[self loadHotels];
}
return self;
}
- (void)dealloc {
[hotels release];
[super dealloc];
}
- (void)loadHotels
hotels = [[NSMutableArray arrayWithCapacity:30] retain];
Hotel *hotel = [[Hotel alloc] init];
hotel.HotelID = 0;
hotel.Name = @"Solmar";
hotel.Capacity = 186;
// more data to be added eventually
[hotels addObject:hotel];
[hotel release];
Hotel *hotel = [[Hotel alloc] init];
hotel.HotelID = 1;
hotel.Name = @"Belair";
hotel.Capacity = 389;
[hotels addObject:hotel];
[hotel release];
// and so on... I have 30 hotels hard coded here.
- (int)hotelCount {
return self.hotels.count;
}
@end
Эта настройка работает нормально.Однако я не могу понять, как реализовать раздел loadHotel, где данные жестко запрограммированы.Я хотел бы заменить это списком с той же информацией.Как мне прочитать в файле plist информацию о назначении каждой клавиши (имя, емкость и т. Д.)?