gpt4 book ai didi

iphone - 访问 JSON 文件以填充 UIPickerView

转载 作者:行者123 更新时间:2023-11-28 22:43:08 25 4
gpt4 key购买 nike

这个网站上有一个与此类似的问题,但由于我不能以问题的形式对该问题添加其他评论,所以我选择在这里写下我的,请原谅。这里开始,

我在本地服务器上有一个 JSON 文件,并试图访问我的 UIPickerView 上的值。问题是我得到一个“问号,即“?””而不是 JSON 文件中的字符串。有什么问题,我该如何解决?我还是个初学者,所以放轻松。

这是代码,

#import "ViewController.h"
#import "JSON.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize picker;
@synthesize terrainJsonArray;

- (void)viewDidLoad
{
[super viewDidLoad];

NSString *terrainString = [NSString stringWithFormat:@"http://terrainracing.com/ios/events_json.php"];

NSURL *terrainUrl = [NSURL URLWithString:terrainString];

NSData *terrainData = [NSData dataWithContentsOfURL:terrainUrl];

NSError *error;

self.terrainJsonArray = [NSJSONSerialization JSONObjectWithData:terrainData options:kNilOptions error:&error];

NSLog(@"%@", terrainJsonArray);

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component {
return self.terrainJsonArray.count;
}

#pragma mark Picker Delegate Methods
- (UIView *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
{

return [self.terrainJsonArray objectAtIndex:row];

}
@end

enter image description here

最佳答案

首先修复您的委托(delegate)方法 - - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 返回 NSString 而不是 UIView 并且您显然需要返回一个字符串让它工作

我可以在您的回复项中看到

{"event_name":"Phoenix","date":"Oct 27","event_id":"14"}

所以你需要抓取你要显示的“子项”的字符串

例如

return [[self.terrainJsonArray objectAtIndex:row] valueForKey:@"event_name"];

关于iphone - 访问 JSON 文件以填充 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932674/

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