基本上我正在開發一個應用程序以允許用戶跟蹤他們的電視節目。用戶可以點擊他們的電視節目來獲得季節和情節分解。將JSON數據轉換並存儲到iOS核心數據中
爲了實現這一點,我試圖從這個API中收集JSON數據,然後將數據存儲到核心數據中。 API調用是這樣的: http://api.trakt.tv/show/summary.json/36590b30dc7d0db9ebd3153b1a989e5d/arrow/1
我可以成功地存儲的值:標題,年份,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的電視季節和情節正確的方式愛,這樣的話,我可以在我的應用程序利用這些數據!
你收到多個節目和多發季節,因爲它看起來像你只創建1個賽季1個插曲。 – Kevin
我試圖存儲多個季節和劇集,但上面的代碼將所有劇集存儲在一起,而不是單獨的新劇集。如何更改我的代碼以正確存儲季節和情節數據? – user2390918