我正在從服務器成功地獲取xml數據,但我無法正確地將該數據從viewController發送到tableViewController。究竟我想要做的發送數據,這是我的代碼......XML解析數據不是從viewController到目標c中的tableViewController?
在的viewController ...
- (IBAction)parserButtonClicked:(UIButton *)sender {
[self.appTitleArray removeAllObjects];
[self.releaseDateArray removeAllObjects];
[self.summeryArray removeAllObjects];
[self.priceArray removeAllObjects];
[self.imageArray removeAllObjects];
DisplayAppsTableViewController *datvc = [self.storyboard instantiateViewControllerWithIdentifier:@"DATVC"];
if ((self.countrySegmentControl.selectedSegmentIndex == 0 || self.countrySegmentControl.selectedSegmentIndex == 1 || self.countrySegmentControl.selectedSegmentIndex == 2) && (self.categorySegmentControl.selectedSegmentIndex == 0 || self.categorySegmentControl.selectedSegmentIndex == 1) && (self.countSegmentControl.selectedSegmentIndex == 0 || self.countSegmentControl.selectedSegmentIndex == 1 || self.countSegmentControl.selectedSegmentIndex == 2 || self.countSegmentControl.selectedSegmentIndex == 3)) {
[self stringManipulation];
//This is the link rom stringManipulation method
// https://itunes.apple.com/in/rss/topfreeapplications/limit=10/xml
// https://itunes.apple.com/in/rss/toppaidapplications/limit=10/xml
self.URLRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.XMLurl]];
self.URLSession = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
self.dataTask = [self.URLSession dataTaskWithRequest:self.URLRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
self.XMLParser = [[NSXMLParser alloc]initWithData:data];
self.XMLParser.delegate = self;
BOOL success = [self.XMLParser parse];
if (success) {
NSLog(@"Parse success");
} else {
NSLog(@"Parse not success");
}
}];
[self.dataTask resume];
}
datvc.appTitleArray1 = self.appTitleArray;
datvc.releaseDateArray1 = self.releaseDateArray;
datvc.priceArray1 = self.priceArray;
datvc.summeryArray1 = self.summeryArray;
datvc.imageArray1 = self.imageArray;
NSLog(@"Here it's NOT printing data successfully : %@", datvc.appTitleArray1);
[self.navigationController pushViewController:datvc animated:YES];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary<NSString *, NSString *> *)attributeDict {
self.element = elementName;
if([elementName isEqualToString:@"im:releaseDate"]) {
NSString *date=[attributeDict objectForKey:@"label"];
[self.releaseDateArray addObject:date];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (trimmedString.length > 0) {
if ([self.element isEqualToString:@"im:name"]) {
[self.appTitleArray addObject:string];
}
if ([self.element isEqualToString:@"summary"]) {
[self.summeryArray addObject:string];
}
if ([self.element isEqualToString:@"im:price"]) {
[self.priceArray addObject:string];
}
if ([self.element isEqualToString:@"im:image"]) {
[self.imageArray addObject:string];
}
}
NSLog(@"Here it's parsing data successfully : %lu", [self.appTitleArray count]);
}
在tableViewController
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"Not getting data from viewController : %lu", [self.releaseDateArray1 count]);
return [self.releaseDateArray1 count];
}
改變導航來電 –