我裏面RootViewController.m一個代碼位:iphone傳遞價值給其他類
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
BlogRssParser *blogRss = [[BlogRssParser alloc] init];
blogRss.terms = [[selectedObject valueForKey:@"data"] description];
//[blogRss setSelectedObject:selectedObject];
NSLog(@"%@", blogRss.terms);
RssFunViewController *rssFun = [[RssFunViewController alloc] initWithNibName:@"RssFunViewController" bundle:nil];
[self.navigationController pushViewController:rssFun animated:YES];
[rssFun release];
}
所以,當用戶點擊該行,它進入RssFunViewController。但它使用BlogRssParser來填充RssFun的tableview。所以我試圖在它之間取得一個值,並從RootView向BlogRss發送一個值,這樣它就可以用正確的數據填充RssFun。
我有這個在BlogRssParser.m:
-(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];
NSLog(@"%@", self.terms);
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", self.terms]];
NSLog(@"%@", url);
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;
}
在控制檯中,RootView方面的日誌具有正確的值。但是在BlogRssParser中,它出現爲(null)。我已經在BlogRssParser.m中聲明瞭屬性。
這是我宣佈它:
@interface BlogRssParser : NSObject {
BlogRss * _currentItem;
NSMutableString * _currentItemValue;
NSMutableArray * _rssItems;
id<BlogRssParserDelegate> _delegate;
NSOperationQueue *_retrieverQueue;
//NSManagedObject *selectedObject;
NSString *terms;
}
@property(nonatomic, retain) BlogRss * currentItem;
@property(nonatomic, retain) NSMutableString * currentItemValue;
@property(readonly) NSMutableArray * rssItems;
//@property(nonatomic,retain) NSManagedObject *selectedObject;
@property(nonatomic, retain) NSString *terms;
@property(nonatomic, assign) id<BlogRssParserDelegate> delegate;
@property(nonatomic, retain) NSOperationQueue *retrieverQueue;
我試過在BlogRssParser中,仍然沒有工作,你的意思是在別的地方? – benhowdle89 2010-11-13 11:29:08
嗯。從第二個代碼片段的方法是什麼? – 2010-11-13 11:31:50
我會在我原來的帖子中放置更多的代碼 – benhowdle89 2010-11-13 11:37:29