[英]returning null value while fetching record from core data
嗨,朋友,當我從核心數據中獲取記錄時,顯示為null。 我不知道問題出在什么地方,我很高興有人解決我的問題,這是我的代碼。
注意:我在名為“ dbmanager”的單獨文件中返回了所有核心數據功能
dbmanager.m
- (NSArray *)fetchAllAds {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Ad"
inManagedObjectContext:dbManager.managedObjectContext]];
NSError *error = nil;
NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
return results;
}
- (Ad*)addToFavourite:(NSNumber*)adId text:(NSString*)text type:(LinkupType)type {
Ad *item = (Ad*)[NSEntityDescription insertNewObjectForEntityForName:@"Ad"
inManagedObjectContext:self.managedObjectContext];
item.adId = adId;
item.data =text;
item.state = [NSNumber numberWithInt:type];
[self save];
return item;
}
- (void)save {
NSError *error = nil;
if (![[self managedObjectContext] save:&error]) {
// Update to handle the error appropriately.
NSLog(@"Unresolved error7 %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
}
MYviewcontroller.m
- (void)viewDidLoad
{
self.fetchedRecordsArray = [[DBManager instance]fetchAllAds];
[[DBManager instance]managedObjectContext];
[self.shoppingtbl reloadData];
//NSLog(@"the fetched data is %@",[[DBManager instance]fetchAllAds]);
[super viewDidLoad];
}
- (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];
ad=[self.fetchedRecordsArray objectAtIndex:indexPath.row];
cell.addesc.text =[NSString stringWithFormat:@"%@",ad.data];
cell.adId.text=[NSString stringWithFormat:@"%lu", (long)[ad.adId integerValue]];
cell.adstatus.text=[NSString stringWithFormat:@"%@",ad.state];
return cell;
}
請嘗試解決我的問題。當我簽入nslog時,它顯示如下:
"<Ad: 0x9751570> (entity: Ad; id: 0x974c6b0 <x-coredata://B3AA111F-8307-4A16-B898-403A804DFDFB/Ad/p56> ; data: <fault>)",
"<Ad: 0x974e370> (entity: Ad; id: 0x9751af0 <x-coredata://B3AA111F-8307-4A16-B898-403A804DFDFB/Ad/p57> ; data: <fault>)"
note: status section is showing properly!
使用NSFetchedResultsController而不是將fetchedRecordsArray數組與單獨的提取配合使用。 通過代碼保留ManagedObjects並不是線程安全的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.