【问题标题】:Iphone sdk setting object attributes with array (sqlite3)Iphone sdk 使用数组设置对象属性(sqlite3)
【发布时间】:2011-09-29 05:54:42
【问题描述】:

不确定这在 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)];
  }

【问题讨论】:

    标签: objective-c arrays ios4 object sqlite


    【解决方案1】:

    不要使用点语法,而是使用 KVC [clientObj setValue:@"Robert" forKey:[myArray objectAtIndex:i]];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-27
      • 2013-10-03
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多