Проблема в том, что первый элемент в вашем массиве lst
- это NSString
, который не имеет каких-либо свойств, которыми обладает ваш класс Client
, и когда вы пытаетесь присвоить ему, вы получаетеошибка.В вашем коде есть несколько проблем:
- Не добавляйте
@"Client"
как элемент в ваш массив, так как кажется, что он там не принадлежит. - Выне нужно предварительно добавлять
Client
объекты в массив.Просто создайте их и добавляйте их в массив по мере продвижения. - Когда у вас есть массивы массивов, становится сложнее понять, для чего нужен каждый индекс, когда вы просматриваете элементы.Я переименовал пару переменных в вашем коде, потому что это облегчило мне понимание.
Я думаю, ваш код должен выглядеть примерно так:
+ (NSMutableArray*) list
{
NSString *querySQL = //some query;
NSMutableArray *columns = [Client displayQuery:querySQL numberOfColumns:7];
NSMutableArray *lst = nil;
if (columns == nil)
return nil;
NSUInteger count = [[columns objectAtIndex:0] count];
lst = [NSMutableArray arrayWithCapacity:count];
for (NSUInteger row = 0; row < count; row++)
{
Client *aClient = [Client new];
aClient.idClient = [[columns objectAtIndex:0] objectAtIndex:row];
aClient.prenom = [[columns objectAtIndex:1] objectAtIndex:row];
aClient.name = [[columns objectAtIndex:2] objectAtIndex:row];
aClient.address = [[columns objectAtIndex:3] objectAtIndex:row];
aClient.telephone = [[columns objectAtIndex:4] objectAtIndex:row];
aClient.email = [[columns objectAtIndex:5] objectAtIndex:row];
aClient.weight = [[columns objectAtIndex:6] objectAtIndex:row];
[lst addObject: aClient];
}
return lst;
}