我正在学习iOS,我在向tableView添加JSON URL时遇到问题。我怎样才能调用TableView?现在,只在控制台中显示我的JSON URL。请帮我。 我不知道我哪里有错误。
// WordsViewController.m
#import "WordsViewController.h"
#import "Word.h"
@interface WordsViewController ()
@end
@implementation WordsViewController
@synthesize jsonArray, wordsArray;
- (void)viewDidLoad {
[super viewDidLoad];
//set the title of our VC
self.title = @"SŁOWNIK";
//LOAD DATA
[self simpleJsonParsing];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
return cell;
}
- (void)simpleJsonParsing {
//-- Make URL request with server
NSHTTPURLResponse *response = nil;
NSString *jsonUrlString = [NSString stringWithFormat:@"https://uidictionary.herokuapp.com/phrases.json"];
NSURL *url = [NSURL URLWithString:[jsonUrlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
//-- Get request and response though URL
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
//-- JSON Parsing
NSMutableArray *result = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil];
NSData * data = [NSData dataWithContentsOfURL:url];
NSLog(@"Result = %@",result);
}
@end
控制台告诉我:
2016-02-18 13:01:42.645 Słownik[20421:5341020] Result = {
phrases = (
{
expression = pejoratywny;
meaning = "\U201eCo\U015b, co jest pejoratywne, wyra\U017ca czyj\U0105\U015b negatywn\U0105 ocen\U0119 lub, rzadziej, samo jest przedmiotem takiej oceny\U201d.\U00a0Inny s\U0142ownik j\U0119zyka polskiego\U00a0PWN, z kt\U00f3rego przytoczy\U0142em t\U0119 definicj\U0119, podaje gar\U015b\U0107 cytat\U00f3w, w nich za\U015b znajdziemy takie po\U0142\U0105czenia wyrazowe, jak\U00a0znaczenie pejoratywne,okre\U015blenie pejoratywne,\U00a0cechy pejoratywne. Jak st\U0105d wynika, przymiotnik ten ma do\U015b\U0107 szeroki zakres u\U017cycia. \U0141\U0105cz\U0105c go ze s\U0142owem\U00a0zabarwienie, nie dublujemy jego tre\U015bci.";
},
{
expression = "Ruby on Rails";
meaning = "\U00a0(cz\U0119sto nazywany\U00a0RoR\U00a0lub po prostu\U00a0Rails) \U2013\U00a0framework\U00a0open source\U00a0do szybkiego tworzenia\U00a0aplikacji webowych\U00a0stworzony g\U0142\U00f3wnie przez du\U0144skiego programist\U0119\U00a0Davida Heinemeiera Hanssona\U00a0w ramach pracy nad oprogramowaniem\U00a0Basecamp. RoR zosta\U0142 napisany w j\U0119zyku\U00a0Ruby\U00a0z u\U017cyciem architektury\U00a0MVC\U00a0(ang.\U00a0Model-View-Controller).";
},
);
}
答案 0 :(得分:4)
喜欢
创建一个NSMutableArray iyour viewdidLoad
@interface WordsViewController ()
{
NSMutableArray *finalResultArray;
}
@end
- (void)viewDidLoad {
[super viewDidLoad];
//set the title of our VC
self.title = @"SŁOWNIK";
finalResultArray = [NSMutableArray new];
//LOAD DATA
[self simpleJsonParsing];
}
//-- JSON Parsing
NSArray *result = [[NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:nil]objectForKey:@"phrases"];
[finalResultArray removeAllobjects];
NSLog(@"Result = %@",result);
for (NSMutableDictionary *dic in result)
{
NSMutableDictionary *temp = [NSMutableDictionary new];
[temp setObject:[tmp objectForKey:@"expression"] forKey:@"expression"];
[temp setObject:[tmp objectForKey:@"meaning"] forKey:@"meaning"];
[finalResultArray addObject:temp];
}
if (finalResultArray)
{
[self.tableView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return finalResultArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textlabel.text = [[finalResultArray objectAtIndex:indexPath.row] objectForKey:@"expression"];
return cell;
}