Как минимум ваш код в DetailView
имеет два вложенных оператора switch, которые включают одну и ту же переменную Wine
. Это, например, приводит к тому, что «Двуручный мясник в долине Баросса» будет недоступен, так как Wine
не может быть равным нулю и единице одновременно. Возможно, вы намеревались использовать две переменные и сохранить раздел и строку для использования в DetailView
.
В любом случае я бы порекомендовал убрать дублирование данных и хранить все в одном месте. Если вы, например, сохранили всю свою информацию о вине в NSArray
, вы можете использовать этот массив для извлечения данных без использования большого оператора case. Это также позволило бы обменять фиксированный список на что-то, полученное из локальной базы данных или даже из Интернета позже.
Если вы, например, создали свой собственный класс WineInformation
, который содержит свойства для каждого аспекта вина (название, содержание алкоголя, рекомендуемые продукты), вы можете просто передать объект WineInformation
для выбранной строки вашему DetailView
, который затем отображает подробную информацию. Таким образом, вам не нужно обрабатывать индексные пути или что-то подобное в DetailView
и просто сконцентрироваться на отображении врученного вина.