1

我有另一个我无法弄清楚的奇怪错误。

我尝试使用以下代码创建一个 tableviewcell:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    TableViewCellController *cell = (TableViewCellController *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil];
        cell = [_cell autorelease];
        _cell = nil;
    } 

    // Configure the cell... 

 int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
 Article *article = (Article *)[articles objectAtIndex: storyIndex];
 cell.titleLabel.text = article.title;
 cell.siteLabel.text = article.site.name;

 cell.summaryLabel.text = article.description;

 [article release];

    return cell;
}

问题是我可以用任何值填充标签,除了描述值。一旦我这样做,我就会遇到以下崩溃:

2010-12-22 16:07:13.165 iDoms [24086:207] CoreData:注释:从数据库中完成的故障:0x8b16dd0 程序接收信号:“EXC_BAD_ACCESS”。警告:无法恢复先前选择的帧。数据格式化程序暂时不可用,将在“继续”后重试。(此时调用 dlopen 并不安全。)

堆栈上有 62820 个订单项。我不知道从哪里开始解决这个问题。我已经习惯了 Java,而到目前为止,Objective-C 一直是一个关于奇怪的小错误的噩梦。

Article 类如下所示:

//  Article.h

#import <CoreData/CoreData.h>

@class Site;

@interface Article :  NSManagedObject  
{

}

@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSNumber * read;
@property (nonatomic, retain) NSString * link;
@property (nonatomic, retain) NSDate * pubDate;
@property (nonatomic, retain) NSString * description;
@property (nonatomic, retain) NSDate * lastUpdate;
@property (nonatomic, retain) Site * site;


@end

//  Article.m

#import "Article.h"

@implementation Article 

@dynamic id;
@dynamic title;
@dynamic read;
@dynamic link;
@dynamic pubDate;
@dynamic description;
@dynamic lastUpdate;
@dynamic site;

@end

数据库包含数据,特定字段只是字符串“Test1”。一如既往地感谢任何帮助!

4

2 回答 2

3

堆栈跟踪的大小让我相信你在某个地方有一个无限递归循环。

我将查看正在创建的自定义 UITableViewCell 的构造,即 summaryLabel 控件以及它如何连接到单元格中。

我还要确保文章数组是保留的属性。

于 2010-12-22T16:35:42.050 回答
2

我不知道这是否与您当前的问题有关,但是您不想做[文章发布];在您的 cellForRowAtIndexPath 方法中,因为 objectAtIndex 没有给您需要释放的参考。

于 2010-12-22T18:09:30.977 回答