Iphone SDK установка атрибутов объекта с массивом (sqlite3) - PullRequest
1 голос
/ 06 июля 2011

Не уверен, что это возможно в 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)];
  }

1 Ответ

1 голос
/ 06 июля 2011

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

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