【问题标题】:NSInteger vs NSNumber and retrieving JSON data from itunesNSInteger vs NSNumber 并从 iTunes 中检索 JSON 数据
【发布时间】:2015-11-13 23:14:48
【问题描述】:

我试图从这个 JSON 中获取艺术家 ID

{
  "wrapperType": "track",
  "kind": "podcast",
  "artistId": 125443881,
  "collectionId": 523121474,
  "trackId": 523121474,

在创建我的播客对象时。但是当我尝试将此变量显示为字符串时,它返回 null。我该如何解决这个问题?

这是我试图访问艺术家 ID 的地方

  NSNumber *podcastID = episode.podcast.artistID;
NSString *episodeNumber = [episode.title stringByReplacingOccurrencesOfString:@" " withString:@"-"];
NSString *deeplinkURL = [NSString stringWithFormat: @"podcast://%@/%@",podcastID, episodeNumber];

字符串在所有实例中都为“podcastID”(null)。

这是 iTunes 的响应,我在其中分配了艺术家 ID

     response.artistId = [[dictionary objectForKey:@"artistId"] integerValue];

【问题讨论】:

  • 在映射代码中设置断点以验证是否正确分配了 artistId。
  • 您遗漏了所有重要的代码。展示如何以及在何处解析 JSON 并分配 artistId 属性。并展示您如何尝试将其显示为字符串。
  • 您分享了一些 JSON,但没有向我们展示您是如何解析它的,也没有向我们展示如何填充 episode 或其 podcast 或其 artistID。没有它,没有人能告诉你为什么你的podcastID 变量是nil

标签: ios objective-c json nsnumber nsinteger


【解决方案1】:

尝试使用 NSNumber 代替:

self.artistId = [(NSNumber *)[response valueForKey:@"artistId"] integerValue];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多