如何在数组中存储值?

How to store value in array?

lookupAllForSQL 是一个数据库函数。 table 名称和标识符是动态的。

for (int i=0; i<FavIdent.count; i++)
{
    NSString *strfavarry = [NSString stringWithFormat:@"SELECT  Title FROM %@ WHERE identifire='%@'",[FavTablename objectAtIndex:i],[FavIdent objectAtIndex:i]];
    FavTitle = [FavData lookupAllForSQL:strfavarry];

}

FavTitle 应该只保留找到的最后一行,但我想要所有指示的列。

在您当前的代码中,您正在 分配 [FavData lookupAllForSQL:strfavarry] 的结果数组for 循环 中的 FavTitle。所以 FavTitle 在执行 for 循环时必须始终包含最后一个结果数组。

使用下面的代码

NSArray *result = [FavData lookupAllForSQL:strfavarry];
if(result){
[FavTitle addObject:[result objectAtIndex:0]];
}

lookupAllForSQL 正在返回一个数组,因此您存储在 FavTitle 中的值(应该是 favTitle - 按照惯例,变量以小写字母开头)将被替换时间,导致循环退出后留下最后一个值。

您需要使用 NSMutableArray 并在每次循环中追加子数组:

NSMutableArray *tempArray = [NSMutableArray new];
for (int i=0; i<FavIdent.count; i++)
{
    NSString *strfavarry = [NSString stringWithFormat:@"SELECT  Title FROM %@ WHERE identifire='%@'",[FavTablename objectAtIndex:i],[FavIdent objectAtIndex:i]];
    [tempArray addObjectsFromArray:[FavData lookupAllForSQL:strfavarry]];
}
favTitle = [tempArray copy];   // Convert it back to an NSArray

您还应该使用准备好的 SQL 语句而不是字符串插值来防止 SQL 注入。