// return item for given key on NULL Object * insert ( Object * key, Object * item );
// insert item at appropriate position bool removeObject ( const Object * key );
// delete item for given key void removeAll () ; // delete all items
bool isEmpty () const
return numltems < 1;
int getNumltems () const return numltems;
Iterator getlterator () const return Iterator ( this );
Array * getKeys () const; // return array of all
// keys in the dictionary
Array * getltems () const; // return array of all
// items in the dictionary
static MetaClass classlnstance;
} ;
Объектная модель. Основные классы
Метод insert в данном классе получает на вход два параметра -собственно сам вставляемый объект и ключ, который будет использован для доступа к этому объекту. И ключу и вставляемому объекту посылается сообщение retain.
Метод itemForKey возвращает указатель на объект, связанный с данным ключом, или NULL, если с этим ключом не связан ни один объект в данном контейнере.
Метод removeObject удаляет объект по заданному ключу. При этом и ключу и удаляемому объекту посылается сообщение release.
Методы getKeys и getltems возвращают массивы всех ключей и всех элементов соответственно.
Обратите внимание, что объекты любого класса, поддерживающего методы hash и isEqual, могут выступать в качестве ключей в ассоциативном массиве (в том числе и одновременно).
Еще одним удобным классом является класс ConfigParser, служащий для чтения и разбора конфигурационного файла, в котором могут задаваться параметры системы (используемое разрешение экрана, используемые клавиши, параметры игрока и т. п.). Пример такого файла приводится ниже.
Е #
# Sample config file #
video {
width 640 height 480 fullscreen false
}
player {
fov 6 0
forward_vel 0.5
backward_vel 0 . 5
strafe_vel 0.3 size (0.2, 0.8, 0.2)
}
detail {
texture "../Textures/detail2.tga" distance 1
scale 20
}
lightmaps on