gpt4 book ai didi

ios - 将 JSON 数据转换并存储到 iOS Core Data

转载 作者:行者123 更新时间:2023-11-29 13:02:42 25 4
gpt4 key购买 nike

基本上,我正在开发一款允许用户跟踪他们的电视节目的应用程序。用户可以单击他们的电视节目以获取季节和剧集分割。

为此,我尝试从该 API 收集 JSON 数据,然后将数据存储到核心数据中。API调用是这样的: http://api.trakt.tv/show/summary.json/36590b30dc7d0db9ebd3153b1a989e5d/arrow/1

我可以成功存储以下值:title、year、url、first_aired 等。但是我不知道如何将季节和剧集信息存储到我的核心数据中(位于 JSON API 调用的一半左右)

我提供了一个链接,指向我如何设置核心数据模型的屏幕截图:! http://i546.photobucket.com/albums/hh427/camcham/ScreenShot2013-10-17at34449AM.png

下面的代码是我目前尝试将 JSON 数据存储到我的核心数据中的方式(使用 MagicalRecords)

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];


Show *showp = [Show MR_findFirstByAttribute:@"sID" withValue:showID inContext:localContext];
if (![showp.sID isEqualToString:showID])
{
//Create New Show in current thread
Show *showContext = [Show MR_createInContext:localContext];
showContext.title = showTitle;
showContext.poster = showPoster;
showContext.year = showYear;
showContext.sID = showID;
//code above this comment correctly adds right JSON info to core data and i can access and display it properly

我的代码的下一部分我尝试将 NSArray 转换为 NSSet,因为我的“季节”关系是 NSSet 类型,但我相信 JSON 数据是 NSArray。我收到以下错误:* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFNumber managedObjectContext]:无法识别的选择器发送到实例 0xa22a680”

                NSArray *show = [(NSSet *)[JSONEvents objectForKey:@"seasons"] valueForKey:@"season"];
showContext.seasons = [NSSet setWithArray:show];

下面的代码没有按预期工作。 episode.title 例如,存储每一集的标题,而不仅仅是特定剧集的单个标题。

            Season *season = [Season MR_createInContext:localContext];
season.seasonNumber = [(NSDictionary *)[JSONEvents objectForKey:@"seasons"] valueForKey:@"season"];
season.episodes = [(NSDictionary *)[JSONEvents objectForKey:@"seasons"] valueForKey:@"episodes"];


Episode *episode = [Episode MR_createInContext:localContext];
episode.title = [[(NSDictionary *)[season.episodes objectForKey:@"seasons"] valueForKey:@"episodes"] valueForKey:@"title"];
episode.overview = [[(NSDictionary *)[JSONEvents objectForKey:@"seasons"] valueForKey:@"episodes"] valueForKey:@"overview"];

总而言之,我希望有人能够展示从我的 JSON API 存储电视季和剧集的正确方法,这样我就可以在我的应用程序中利用这些数据!

最佳答案

删除对 (NSSet *) 的转换应该可以修复错误。

NSArray *show = [[JSONEvents objectForKey:@"seasons"] valueForKey:@"season"];
showContext.seasons = [NSSet setWithArray:show];

代替

NSArray *show = [(NSSet *)[JSONEvents objectForKey:@"seasons"] valueForKey:@"season"];
showContext.seasons = [NSSet setWithArray:show];

关于ios - 将 JSON 数据转换并存储到 iOS Core Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409484/

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