1
我有2個屏幕,在第一次當我點擊一個按鈕時,它應該到第2屏幕從服務器獲取數據並在第2屏幕的表格視圖中顯示。但使用以下代碼我無法在表視圖中顯示的數據來自服務器的數據沒有被顯示在桌面視圖中
#import "FirstTableViewController.h"
@interface FirstTableViewController()<NSXMLParserDelegate>
@property(nonatomic,strong)NSXMLParser*xmlparse;
@property(nonatomic,strong)NSMutableString*tempstr;
@property(nonatomic,strong)NSMutableArray*arr;
@end
@implementation FirstTableViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableURLRequest*req=[[NSMutableURLRequest alloc]init];
NSURL*url=[NSURL URLWithString:@"http://www.thomas-bayer.com/sqlrest/CUSTOMER/"];
[req setURL:url];
[[[NSURLSession sharedSession]dataTaskWithRequest:req completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
// SMXMLDocument *document = [SMXMLDocument documentWithData:data error:&error];
NSString*str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
_xmlparse=[[NSXMLParser alloc]initWithData:data];
_xmlparse.delegate=self;
[_xmlparse parse];
}] resume];
[_table reloadData];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
_tempstr=[[NSMutableString alloc]initWithString:string];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary<NSString *, NSString *> *)attributeDict;{
if([elementName isEqualToString:@"CUSTOMER"]){
self.tempstr=[[NSMutableString alloc]init];
}
if([elementName isEqualToString:@"CUSTOMERList"]){
self.arr=[[NSMutableArray alloc]init];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName;{
if([elementName isEqualToString:@"CUSTOMER"]){
[_arr addObject:self.tempstr];
self.tempstr=nil;
}
// NSLog(@"arr is %@",self.arr);
}
#pragma mark - Table view data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.arr.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cel" forIndexPath:indexPath];
cell.textLabel.text=[self.arr objectAtIndex:indexPath.row];
return cell;
}
@end
兄弟...它不是我的代碼段中的迴流工作 – Nishanth
....沒有行的0 – Nishanth
是你有'的輸出arr' –