2014-02-01 6 views
0
- (void)viewDidLoad 
{ 

[super viewDidLoad]; 
Name = @"Name"; 
thumbnail = @"Thumbnail"; 
titlename = @"TitleName"; 
stw = @"stw"; 
shopname = @"shopname"; 
telno = @"telno"; 
adress = @"adress"; 
hour = @"hour"; 
textview = @"textview"; 

myObject = [[NSMutableArray alloc] init]; 

NSData *jsonSource = [NSData dataWithContentsOfURL: 
         [NSURL URLWithString:@"http://yy33k.net78.net/json.php"]]; 

id jsonObjects = [NSJSONSerialization JSONObjectWithData: 
        jsonSource options:NSJSONReadingMutableContainers error:nil]; 

for (NSDictionary *dataDict in jsonObjects) { 
    NSString *Name_data = [dataDict objectForKey:@"Name"]; 
    NSString *thumbnail_data = [dataDict objectForKey:@"Thumbnail"]; 
    NSString *stw_data = [dataDict objectForKey:@"stw"]; 
    NSString *titlename_data = [dataDict objectForKey:@"TitleName"]; 
    NSString *shopname_data = [dataDict objectForKey:@"shopname"]; 
    NSString *hour_data = [dataDict objectForKey:@"hour"]; 
    NSString *adress_data = [dataDict objectForKey:@"adress"]; 
    NSString *telno_data = [dataDict objectForKey:@"telno"]; 
    NSString *textview_data = [dataDict objectForKey:@"textview"]; 



    NSLog(@"Name: %@",Name_data); 
    NSLog(@"THUMBNAIL: %@",thumbnail_data); 
     NSLog(@"AUTHOR: %@",stw_data); 
    NSLog(@"titlename: %@",titlename_data); 

    dictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
        Name_data, Name, 
        thumbnail_data, thumbnail, 
        stw_data,stw, 
        titlename_data, titlename, 
        hour_data, hour, 
        shopname_data, shopname, 
        telno_data, telno, 
        adress_data, adress, 
        textview_data, textview, 
        nil]; 
    [myObject addObject:dictionary]; 
}// Do any additional setup after loading the view, typically from a nib. 




[self addRefreshViewController]; 

} 


-(void)addRefreshViewController{ 


self.refreshControl = [[UIRefreshControl alloc] init]; 
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"]; 
[self.refreshControl addTarget:self action:@selector(RefreshViewControlEventValueChanged) 
     forControlEvents:UIControlEventValueChanged]; 
} 

-(void)RefreshViewControlEventValueChanged 

{ 

if (self.refreshControl.refreshing) { 

    NSLog(@"refreshing"); 

    self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"刷新中"]; 



    [self performSelector:@selector(loadData) withObject:nil afterDelay:0.3]; 

} 

} 


-(void)loadData{ 


[self.refreshControl endRefreshing]; 
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"]; 


[self.tableView reloadData]; 
} 

ответ

0

Вот реализация вашего метода refreshControlValueChanged:. Вы также можете повторно использовать метод loadJSON в viewDidLoad.

- (void)refreshControlValueChanged:(UIRefreshControl *)control { 

    if (control.refreshing) { 
     [self loadJSON]; 
    } 
} 

- (void)loadJSON { 

    NSURL *jsonURL = [NSURL URLWithString:@"YOUR JSON SOURCE URL STRING HERE"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:jsonURL]; 

    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 

     if (!connectionError) { 

      NSError *jsonParsingError; 

      id obj = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonParsingError]; 

      if (!jsonParsingError) { 

       // Checking for the type of the top level container we received 
       if ([obj isKindOfClass:[NSDictionary class]]) { 

        // Got a dictionary, continue processing the data... 
        NSDictionary *myDict = (NSDictionary *)obj; 

       } 

       // After you've done with processing the received data, you can update the UI here... 

       [self.tableView reloadData]; 
      } 
      else { 

       // Could not parse the JSON, probably malformed JSON/wrong data was downloaded, handle it! 
      } 
     } 
     else { 

      // Got an error while downloading JSON, handle it! 
     } 

     [self.refreshControl endRefreshing]; 
    }]; 
} 
+0

Обратите внимание, что в соответствии с соглашением ObjC методы должны начинаться с прописной буквы, так - (Недействительными) RefreshViewControlEventValueChanged не то, что вы хотите для имени метода. –

+0

2014-02-02 04: 43: 58.591 星級 生 果 佬 [813: 11303] *** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: '- [ViewController refreshControlValueChanged]: непризнанный селектор, отправленный в экземпляр 0x71a87b0' *** Первый стек бросить вызов: (0x1c97012 0x10d4e7e 0x1d224bd 0x1c86bbc 0x1c8694e 0x10e8705 0x1c2c0 0x1c258 0xdd021 0xdd57f 0xdd056 0x5955a9 0x595410 0x599c60 0x49fb53f 0x4a0d014 0x49fcfd6 0x4a0d014 0x4a048b7 0x4a00405 0x49fd768 0x1c3daf5 0x1c3cf44 0x1c3ce1b 0x1bf17e3 0x1bf1668 0x18ffc 0x219d 0x20c5 0x1) LibC++ abi.dylib: terminate called throwing exception – yy33k

+0

В нем говорится, что ваш класс ViewController не имеет метода refreshControlValueChanged. Убедитесь, что вы реализовали этот метод. –

Смежные вопросы