gpt4 book ai didi

ios - 使用json从本地文件传递数据

转载 作者:IT王子 更新时间:2023-10-29 08:14:02 25 4
gpt4 key购买 nike

我正在尝试将数据从我的 JSON 文件传递​​到一个简单的 ViewController 上的标签,但我不知道实际传递该数据的位置。我可以只添加到我的 setDataToJson 方法,还是可以在我的 viewDidLoad 方法中添加数据?

这是我的代码

@interface NSDictionary(JSONCategories)
+(NSDictionary*)dictionaryWithContentsOfJSONString:(NSString*)fileLocation;
@end

@implementation NSDictionary(JSONCategories)

+(NSDictionary*)dictionaryWithContentsOfJSONString:(NSString*)fileLocation{
NSData* data = [NSData dataWithContentsOfFile:fileLocation];
__autoreleasing NSError* error = nil;
id result = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions error:&error];
if (error != nil) return nil;
return result;
}
@end

@implementation ViewController
@synthesize name;

- (void)viewDidLoad
{
[super viewDidLoad];

}

-(void)setDataToJson{

NSDictionary *infomation = [NSDictionary dictionaryWithContentsOfJSONString:@"Test.json"];
name.text = [infomation objectForKey:@"AnimalName"];//does not pass data
}

最佳答案

问题在于您尝试检索文件的方式。为了正确执行,您应该首先在包中找到它的路径。尝试这样的事情:

+(NSDictionary*)dictionaryWithContentsOfJSONString:(NSString*)fileLocation{
NSString *filePath = [[NSBundle mainBundle] pathForResource:[fileLocation stringByDeletingPathExtension] ofType:[fileLocation pathExtension]];
NSData* data = [NSData dataWithContentsOfFile:filePath];
__autoreleasing NSError* error = nil;
id result = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions error:&error];
// Be careful here. You add this as a category to NSDictionary
// but you get an id back, which means that result
// might be an NSArray as well!
if (error != nil) return nil;
return result;
}

这样做之后,一旦你的 View 被加载,你应该能够通过像这样检索 json 来设置你的标签:

-(void)setDataToJson{
NSDictionary *infomation = [NSDictionary dictionaryWithContentsOfJSONString:@"Test.json"];
self.name.text = [infomation objectForKey:@"AnimalName"];
}

- (void)viewDidLoad
{
[super viewDidLoad];
[self setDataToJson];
}

关于ios - 使用json从本地文件传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866403/

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