Iphone sdk настройка на обектни атрибути с масив (sqlite3)

Не съм сигурен дали това е възможно в Iphone SDK, тъй като не успях да го накарам да работи. Имам обект, наречен Client, и той има следните свойства.

  firstName, lastName, mobile, email.

след това го настройвам, като правя следното

  Client *clientObj = [[Client alloc] init:];

след това настройвам масив със следните стойности, който има точните имена на атрибути за клиент.

  NSArray *myArray = [[NSArray alloc]initWithObjects:@"firstName", @"lastName", @"email", @"mobile", nil]

сега, възможно ли е да се направи нещо подобно

  clientObj.[myArray objectAtIndex:0] = @"Robert";

за да получите същия ефект като правите

  clientObj.firstName = @"Robert";

Някой успял ли е да направи нещо подобно? Причината, поради която го правя по този начин, е, че имам IF израз, който проверява дали sql израз връща нулева стойност за поле, така че следователно няма да го присвои на clientObj и единственият начин, по който мислех, че мога да повторя атрибутите на клиента е да настроите и масив, който има тези атрибути.

Това беше част от моя код, върху който работех.

  Client *clientObj = [[Client alloc] init];

  int i;

  NSArray *myArray = [[NSArray alloc]initWithObjects:@"firstName", @"lastName", @"email", @"mobile", nil];

  for(i=0;i < [myArray count];i++){

  char *tempChar = sqlite3_column_text(selectstmt, i);                            

  if (tempChar == nil) {
     //is null dont assign
  } else { 
     clientObj.[myArray objectAtIndex:i] = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt, i)];
  }

person Robert    schedule 06.07.2011    source източник


Отговори (1)


Вместо да използвате синтаксиса на точка, използвайте KVC [clientObj setValue:@"Robert" forKey:[myArray objectAtIndex:i]];

person Paul.s    schedule 06.07.2011