【问题标题】:NSMutable Array and objectAtIndex not working - only displays last item in arrayNSMutable Array 和 objectAtIndex 不起作用 - 仅显示数组中的最后一项
【发布时间】:2012-01-20 09:49:10
【问题描述】:

好的,这是使用 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)的类拼凑在一起。

谁能给我一些关于如何调试的指导?

【问题讨论】:

    标签: xcode sqlite nsarray


    【解决方案1】:

    我的猜测是每个数组对象都加载了相同的文本,或者同一个对象被多次添加到数组中。

    无论哪种方式,我都会仔细研究数组加载代码。

    【讨论】:

    • 感谢您的建议。不确定它可能有什么问题,但这是我填充数组的代码:' while([results next]) { self.subject_id = [results stringForColumn:@"SUBJECT_ID"]; self.subject = [结果 stringForColumn:@"SUBJECT"]; self.category = [结果 stringForColumn:@"CATEGORY"]; [科目添加对象:自我]; } '
    • 我在深入研究我的数组加载代码后发现存在类型冲突,因此无法正常工作。在此之后它起作用了。感谢您的简单指导!
    猜你喜欢
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多