如何在数组中存储值?
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 注入。
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 注入。