Core Data在看似正常的NSString字段上崩溃

时间:2010-12-22 16:18:41

标签: iphone cocoa core-data nsmanagedobjectcontext

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

我尝试使用以下代码创建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:annotation:从数据库中完成的错误: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”。 任何帮助都一如既往地受到赞赏!

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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