Я делаю очень простую игру, но я не могу решить, как хранить переменные, которые будут использовать мои пользовательские классы.Я знаю только два способа сделать это, но у других людей, похоже, есть правила относительно того, куда вы кладете определенные вещи.Я хотел бы знать, как эффективно хранить переменные, которые я использую, и я надеялся получить ответ здесь.
По сути, это мой заголовочный файл.
#import <Foundation/Foundation.h>
#import "URWInventoryView.h"
@interface RWInventory : NSObject {
URWInventoryView *inventoryWindow;
BOOL slotIsOccupied[5][5];
int numberOfSlots;
int numberOfSlotsFilled;
int numberOfColumns;
int numberOfRows;
}
//
////
//// Initializers
////
//
- (id) initWithSlots:(int)slots;
- (id) initWithColumns:(int)columns andRows:(int)rows;
- (id) initWithInventoryData:(RWInventory*)inventory;
//
////
//// Setters
////
//
- (void) setSlots:(int)slots;
- (void) setColumns:(int)columns;
- (void) setRows:(int)rows;
- (void) setSlotIsOccupiedColumn:(int)column andRow:(int) row;
- (void) moveItemAtColumn:(int)column andRow:(int)row toColumn:(int)newColumn andRow:(int)newRow;
//
////
//// Getters
////
//
- (int) slots;
- (int) columns;
- (int) rows;
- (BOOL) slotIsOccupiedColumn:(int)column andRow:(int)row;
@end
Это использует первый метод, о котором я говорил ранее.Второй метод предполагает использование одного NSDictionary
между объявлениями #import
и @interface
, и они просто сохраняют данные каждого объекта в ключе.Использованный выше метод звучит для меня гораздо проще и эффективнее.
Пожалуйста, имейте в виду, что я буду использовать где-то от пяти до двадцати объектов этого типа.Последнее замечание: URWInventoryView
- это еще один из моих пользовательских классов, основанный на UIView.