我有另一个奇怪的错误,我无法弄清楚。
我尝试使用以下代码创建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”。 任何帮助都一如既往地受到赞赏!
答案 0 :(得分:3)
堆栈跟踪的大小让我相信你有一个无限的递归循环。
我会看一下正在创建的自定义UITableViewCell的构造,即summaryLabel控件以及它如何连接到单元格。
我还要确保articles数组是属性保留的。
答案 1 :(得分:2)
我不知道这是否与你当前的问题有关,但是你不想做[文章发布];在您的cellForRowAtIndexPath方法中,因为objectAtIndex没有为您提供需要释放的引用。