Проблема с CoreData и доступом к отношениям: запрос на членство в чем-то, не являющемся структурой или объединением - PullRequest
1 голос
/ 04 июня 2010

У меня есть вопрос относительно довольно продвинутой DataModel, которую я хотел бы использовать с CoreData.

Прежде чем я подробно расскажу о том, что я сделал, я опишу, что я хочу сделать.

У меня есть список гостей отеля, которые останавливаются в одной комнате и имеют предпочтения. Когда пользователь будет готов, он должен выбрать гостя и просмотреть данные, а также иметь возможность добавить нового гостя, выбрать комнату (поддерживается также приложением) и выбрать свои предпочтения (где пользователь также может добавлять новые предпочтения). Гость может не иметь или иметь много предпочтений.

Итак, вот что у меня есть. Я создал 3 объекта: - Комнаты с номером комнаты - Предпочтения с именем - Гостевая информация с именем -> с этими комнатами Отношений (Комнаты назначения) и префами (Предпочтения назначения с «Связями со многими») Класс объекта.

Пока все хорошо. Теперь у меня есть UITableViewController, который отображает всех гостей, когда я нажимаю на гостя, у меня есть другой UITableViewController, показывающий детали (DetailsViewController). Нажав на «Настройки», он перейдет в другой UITableViewController, где я могу выбрать «Настройки». У меня проблема, когда я хочу получить доступ к prefs в DetailsViewController. Вот мой cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
        cell.editingAccessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

switch (indexPath.row) 
{
  case 2:
    cell.textLabel.text = @"Preferences";

    NSEnumerator *e = [info.prefs objectEnumerator];
    id collectionMemberObject;

    while ( (collectionMemberObject = [e nextObject]) ) 
    {

    Preferences *prefInfo = collectionMemberObject;         
    DebugLog(@"===> %@", prefInfo.name);

    }

    break;
}

info - это гостевая информация, которую я передаю в DetailsViewController.

Теперь с этим я получаю "запрос на членство в чем-то, не являющемся структурой или объединением" , обращающимся к prefInfo.name.

Есть идеи, что не так?

1020 * ТНХ *

1 Ответ

3 голосов
/ 04 июня 2010

У меня была такая же проблема, решение так же просто, как вы будете биться головой о стену, как только услышите ее;)

попробуйте [prefInfo name] вместо prefInfo.name.

...