[NSUserDefaults standardUserDefaults] - подход, который необходимо использовать, если есть вероятность, что вам потребуется обновить значения во время выполнения.
Доступ к этому достаточно быстр, чтобы вы могли иметь постоянное хранилище значений ключа произвольного доступа. Дополнительным преимуществом, если вы не изменяете во время выполнения, является то, что вы можете редактировать список непосредственно во время разработки в симуляторе.
Если значения ключей действительно фиксированы, сделайте это с помощью plist в комплекте приложений. Вы можете загрузить память во время запуска или по запросу:
NSString *someListingPath = [[NSBundle mainBundle] pathForResource:@"someList" ofType:@"plist"];
self.variableList= [[NSArray alloc] initWithContentsOfFile:someListingPath];
NSDictionary также имеет initWithContentsOfFile: метод для загрузки данных из plist.
Вы можете использовать ту же технику для загрузки изображений из комплекта.
Возможно, вы захотите взглянуть на Руководство по программированию пакета для получения дополнительных советов.