Получение отношений из двух массивов указателей - PullRequest
0 голосов
/ 19 марта 2010

В части программы, над которой я работаю, мне нужно подсчитать, сколько раз каждый человек работал над проектами друг с другом. Допустим, у нас есть сущности «Сотрудник» и сущности «Сессия». В каждом сеансе есть четыре типа проектов: «A», «B», «C» и «D», каждый из которых имеет отношение «многие ко многим» с сотрудниками.

Я делаю цикл, чтобы систематически проверять каждого человека, с которым работал выбранный человек. Во-первых, я помещаю все их типы проектов в один массив, чтобы было легче проходить циклы, но к тому времени, когда я спрашиваю последний вложенный проект о его членах Employee, я получаю ошибку «нераспознанный селектор».

IBOutlet NSArrayController * superList;

EDIT: я забыл представить этот массив, который указывает на упорядоченные объекты контроллера.

NSArray * list = [superList arrangedObjects];
int x;
for(x = 0; x < [list count]; x++){
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectAs"];
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectBs"];
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectCs"];
NSArray *A = [[list objectAtIndex:x] valueForKey:@"projectDs"];

NSArray *masterList = [[NSArray alloc] initWithObjects: projectAs, projectBs, projectCs, projectDs, nil];

int y;
for(y = 0; y < [masterList count]; y++){
int z;
for(z = 0; z < [[masterlist objectAtIndex:y] count]; z++){
//And now to make an Array of this employee's partners on the selected object, to run comparisons on.
//I also have an array of keys for each session's teams, so that's what I'm referencing here:
NSArray * thisTeam = [list objectAtIndex:y] objectAtIndex:z] valueForKey:projectKey];

Это вызывает исключение ... а именно, - [_ NSFaultingMutableSet objectAtIndex:]: нераспознанный селектор отправлен на экземпляр

Что не так с этим последним созданием массива?

1 Ответ

1 голос
/ 19 марта 2010

На основе вашей линии:

NSArray * A = [[list objectAtIndex: x] valueForKey: @ "projectAs"];

Звонок:

[list objectAtIndex: y]

не возвращает массив - он возвращает NSDictionary, что означает, что вы не можете вызвать objectAtIndex: z для результата.

Похоже, это должно быть [masterlist objectAtIndex: y]?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...