好的,所以问题来自于尝试从sqlite DB中提取数据并将其放在数组中以进行滚动视图显示。我使用FM数据库库连接到SQL数据库
代码如下:
NSMutableArray *data = [[NSMutableArray alloc] init];
FMResultSet *result = [[[StorageTank sharedStorageTank] DB]
executeQuery:@"SELECT * FROM table"];
while([result next])
{
NSArray *values = [[NSArray alloc] initWithObjects:
[[NSNumber alloc] initWithInt:[result intForColumn:@"id"]],
[[NSNumber alloc] initWithInt:[result intForColumn:@"count"]],
[[NSNumber alloc] initWithInt:[result intForColumn:@"required"]],
[result stringForColumn:@"image_portrait"],
[result stringForColumn:@"image_landscape"],
[[NSNumber alloc] initWithInt:[result intForColumn:@"end_date"]],
[[NSNumber alloc] initWithInt:[result intForColumn:@"active"]],
[result stringForColumn:@"merchant"], nil];
NSLog(@"%@", values);
NSArray *keys = [[NSArray alloc] initWithObjects: @"id",@"count",@"required",
@"image_portrait",@"image_landscape",
@"end_date",@"active",@"merchant",nil];
NSLog(@"%@", keys);
NSDictionary *row = [[NSDictionary alloc] initWithObjects: values forKeys: keys];
[data addObject: row];
}
NSArray *resultArray = [[NSArray alloc] init];
resultArray = data;
所以,显然从我测试的代码中确保值count等于键数...但我仍然得到这个错误:
“因未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:' - [__ NSPlaceholderDictionary initWithObjects:forKeys:]:对象数(3)不等于键数(8)'”
我无法理解为什么计数会有所不同,如果我打印出数值数组,我会看到8个值...它应该匹配我的8个键?他们是对的?
非常感谢任何帮助/方向!
谢谢,
答案 0 :(得分:4)
是数组数组中的第四项:
[result stringForColumn:@"image_portrait"]
返回nil
?这是告诉-initWithObjects列表完成的值。