【问题标题】:Convert FMResultSet to NSMutableArray?将 FMResultSet 转换为 NSMutableArray?
【发布时间】:2011-12-09 17:52:16
【问题描述】:

我正在尝试 FMDB,如果我可以将我的 FMResultSet 转换为 NSMutableArray,它看起来对我来说非常适合。

我将如何做到这一点?

【问题讨论】:

    标签: objective-c ios fmdb


    【解决方案1】:

    你可以试试这个。

    NSMutableArray *array = [NSMutableArray array];
    FMDatabase *database = [FMDatabase databaseWithPath:databasePath];
    
    [database open];
    
    FMResultSet *results = [database executeQuery:@"SELECT * FROM Table"];
    while ([results next]) {
        [array addObject:[results resultDictionary]];
    }
    
    NSLog(@"%@", array);
    
    [database close];
    

    我在项目中使用它,它工作得很好。

    【讨论】:

      【解决方案2】:

      sample code for FMDB 非常清楚地说明了FMResultSet 的工作原理。您可以通过在每次迭代中调用next 方法来迭代结果集中的行。在循环内部,您使用数据访问器方法检索当前行的每列数据。如果你想把它变成一个数组,你必须手动完成。像这样:

      NSMutableArray *array = [NSMutableArray array];
      FMResultSet *rs = [db executeQuery:@"select * from table"];
      while ([rs next]) {
          // Get the column data for this record and put it into a custom Record object
          int col1 = [rs intForColumn:@"col1"];
          int col2 = [rs intForColumn:@"col2"];
          Record *record = [Record recordWithCol1:col1 col2:col2];
          [array addObject:record];
      }
      [rs close];
      

      如您所见,我假设您已经构建了一个自定义 Record 类,该类表示您的数据库表中的一条记录。当然,您也可以使用字典。

      【讨论】:

      • 谢谢,这可行,但会增加我的应用程序的大量开销,但很高兴知道这一点
      猜你喜欢
      • 2013-09-24
      • 1970-01-01
      • 2015-02-03
      • 2011-06-01
      • 2011-03-14
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多