无法从核心数据获取的数据文件
,当我从获取核心数据记录,它返回空值...我不知道是什么问题...无法从核心数据获取的数据文件
当我NSLog
检查显示像这样:
"<Ad: 0x979fb30> (entity: Ad; id: 0x9799470 <x-coredata://B3AA111F-8307-4A16-B898-
403A804DFDFB/Ad/p22> ; data: <fault>)",
"<Ad: 0x979fd70> (entity: Ad; id: 0x9799480 <x-coredata://B3AA111F-8307-4A16-B898-
403A804DFDFB/Ad/p23> ; data: <fault>)
这是我的代码。 我将所有核心数据函数都返回到名为dbmanager的单独类中。
- (void)viewDidLoad
{
DBManager *manager=[[DBManager alloc]init];
self.fetchedRecordsArray = [manager fetchAllAds];
[self.shoppingtbl reloadData];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.fetchedRecordsArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath
{
static NSString *CellIdentifier = @"ShoppingCart";
ShoppingCart *cell = (ShoppingCart*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath];
cell.backgroundColor=[UIColor clearColor];
ad=[self.fetchedRecordsArray objectAtIndex:indexPath.row]
cell.addesc.text = ad.data;
cell.adId.text=[NSString stringWithFormat:@"%lu", (long)[ad.adId integerValue]];
cell.adstatus.text=[NSString stringWithFormat:@"%@",ad.state];
return cell;
}
实体名称为Ad。它包含Adid,状态,数据。
在表视图它显示字符串和0号空值..
我建议你放弃你fetchedRecordsArray
,拥抱NSFetchedResultsController
。它专门设计用于处理核心数据和表格视图。
这几乎可以消除你的问题,并产生更健壮和可扩展的代码。您可以以这种方式显示100.000s的广告,而不会有任何问题。
还有一个提示,即您可能要事先检查的内容:很可能您没有正确保存数据。它看起来像是在创建后用[managedObjectContext save:&error]
保存了每条记录,但也许在填充状态和数据后没有正确执行此操作。检查的方法是枚举您的数组元素和NSLog
这些信息位以检查它们是否在那里。
嗨你几乎是正确的...我使用[managedObjectContext保存:&错误]来保存记录。而不是使用这种方法。有任何其他方法来保存记录? – user3354840 2014-10-09 04:53:14
方法是正确的 - 问题可能出在您的上下文所处的**状态。如果我的回答有帮助,请先对它进行投票表决。 – Mundi 2014-10-10 10:46:30
什么是self.fetchedRecordsArray viewDidLoad?你可以NSLog吗?另外,为什么你不使用NSFetchedResultsController? – djromero 2014-10-08 12:55:21
当我检查Nslog它显示像这样“(实体:Ad; id:0x9a5a6c0 ;数据:) “, ”(实体:Ad; id:0x9a5a6d0 ;数据:)“ –
user3354840
2014-10-08 13:00:38
请更新问题以包含 - [DBManager fetchAllAds]的内容。这可能是核心数据上下文的问题。核心数据是一个复杂的主题,我建议你检查苹果示例数据和一些开源项目,看看如何正确使用它。那里有一些教程。 – djromero 2014-10-08 13:10:45