gpt4 book ai didi

ios - 如何将 JSON URL 响应数据加载到 tableView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:39:05 25 4
gpt4 key购买 nike

我正在学习 iOS,我在将 JSON URL 添加到 tableView 时遇到了问题。如何调用 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).";
},
);
}

最佳答案

喜欢

创建一个 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;
}

关于ios - 如何将 JSON URL 响应数据加载到 tableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35481482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com