Небольшие объемы данных могут быть загружены в виде XML непосредственно в память. Таким образом, XML будет хорошо. При использовании большого объема данных лучше использовать базу данных, но при этом скорость будет снижаться просто потому, что она должна считывать / записывать данные в хранилище.
В приложениях для iPhone и других приложениях для мобильных телефонов разница между память и память имеют тенденцию быть очень маленькими. К сожалению, чтобы приложение понимало XML-файл, оно должно загрузить XML в модели DOM. Это израсходует дополнительную память размером примерно с XML. Таким образом, XML не подходит для больших объемов данных. (Или огромные записи.)
Если у вас есть до 50 продуктов, баланс в пользу XML. Более 50, и вам лучше с sqllite.
Дополнительным бонусом XML является то, что вам нужно явно сохранить обратно в хранилище, чтобы обновить ваши изменения. В случае баз данных любые обновления данных обычно выполняются напрямую. Таким образом, с базой данных у вас есть немного больше проблем, устраняя любые ошибки. Однако с XML ваши изменения будут потеряны в случае сбоя приложения. Лично я предпочитаю обновлять данные только по моей команде, поэтому я бы предпочел XML. (Но не для больших объемов данных.)