好的,这是使用Xcode的第三天,所以请保持愉快。
我正在尝试设置一个简单的表来显示现有sqlite数据库中的记录。我已经将数据库加载到NSMutableArray并验证了大小是否正确,但我无法循环并正确地获取数据。显示的只是表格的最后一条记录。
以下是示例代码:
while([results next]) {
self.subject_id = [results stringForColumn:@"SUBJECT_ID"];
self.subject = [results stringForColumn:@"SUBJECT"];
self.category = [results stringForColumn:@"CATEGORY"];
[subjects addObject:self];
NSLog(@"AFTER record: %@ - %@ - %@", self.subject_id, self.subject, self.category);
}
当循环打印到日志时,我验证是否正在循环正确的数据。
然后我在填充数组后立即运行它,每次都得到相同的最后一个条目:
//PULL UP THE THINGY AND SEE IF IT WORKS
Subject *sub;
int x = 0;
for (sub in subjects){
Subject *xsub = [subjects objectAtIndex:x];
NSLog(@" %i sub data ------- %@, ----- %@", x, xsub.subject, xsub.category);
x = x+1;
};
sub = [subjects objectAtIndex:50];
NSLog(@" sub data ------- %@, ----- %@", sub.subject, sub.category);
我甚至尝试专门从这个数组中提取一条记录,但是我得到了相同的最后一条记录而不是我要求的记录:
sub = [subjects objectAtIndex:50];
“主题”是一个给出我的表的字段名称的类。我还没有使用实体功能。
我的头文件声明了这样的字段名称:
@property (nonatomic, retain) NSString * subject_id;
@property (nonatomic, retain) NSString * subject;
@property (nonatomic, retain) NSString * category;
我使用FMDB包装器从我的数据库中获取数据,并将来自几个不同tableView示例的类拼凑在一起,例如Animals one。
有人能就如何调试这个给我一些指导吗?
答案 0 :(得分:0)
我的猜测是要么每个数组对象都加载了相同的文本,要么多次将相同的对象添加到数组中。
无论哪种方式,我都会仔细研究数组加载代码。