繁体   English   中英

将核心数据文本转换为RSS iphone应用程序的URL

[英]Core Data text into URL for RSS iphone app

我有以下代码可为核心数据配置单元格:代码:

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {

    NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];
    cell.textLabel.text = [[managedObject valueForKey:@"data"] description];
}

但是我想做的是当我单击以下行时:代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic may go here -- for example, create and push another view controller.
     RssFunViewController *rssFun = [[RssFunViewController alloc] initWithNibName:@"RssFunViewController" bundle:nil];
     //NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
     [self.navigationController pushViewController:rssFun animated:YES];
     [rssFun release];

}

在此处将行文本插入URL:代码:

-(BOOL)fetchAndParseRss{
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

   [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

   //To suppress the leak in NSXMLParser
   [[NSURLCache sharedURLCache] setMemoryCapacity:0];
   [[NSURLCache sharedURLCache] setDiskCapacity:0];

   NSURL *url = [NSURL URLWithString:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=lindsay+lohan&fr=news-us-ss"];
   BOOL success = NO;
   NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
   [parser setDelegate:self];
   [parser setShouldProcessNamespaces:YES];
   [parser setShouldReportNamespacePrefixes:YES];
   [parser setShouldResolveExternalEntities:NO];
   success = [parser parse];
   [parser release];
   [pool drain];
   return success;
}

所以说lindsay + lohan的地方,我将把用户搜索词放在这里。 关键是,第三段代码在BlogRss.m和前两位以及RootViewController.m中? 不确定如何建立链接?? 有任何想法吗...

谢谢

您需要将NSManagedObject传递到传入的视图控制器中:

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath 
{
  // Navigation logic may go here -- for example, create and push another view controller.
  RssFunViewController *rssFun = [[RssFunViewController alloc] initWithNibName:@"RssFunViewController" bundle:nil];
  NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
  [rssFun setSelectedObject:selectedObject];
  [[self navigationController] pushViewController:rssFun animated:YES];
  [rssFun release], rssFun = nil;
}

这意味着您的RssFunViewController需要具有一个名为selectedObject的属性,该属性被声明为NSManagedObject

然后,您可以完成您的方法:

- (BOOL)fetchAndParseRss 
{
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

   [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

   //To suppress the leak in NSXMLParser
   [[NSURLCache sharedURLCache] setMemoryCapacity:0];
   [[NSURLCache sharedURLCache] setDiskCapacity:0];

   NSString *terms = [[self selectedObject] vaueForKey:@"data"];
   NSURL *url = [NSURL URLWithString:[NSString stirngWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", terms]];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM