Swift 从 NSDictionary 读取数据

2024-01-04

我正在使用这段代码来读取数据NSDictionary:

let itemsArray: NSArray = response.objectForKey("items") as! NSArray;
let nextPageToken: String = response.objectForKey("nextPageToken") as! String

var videoIdArray: [String] = []

for (item) in itemsArray {
      let videoId: String? = item.valueForKey("id")!.valueForKey("videoId") as? String
      videoIdArray.append(videoId!)
}

但是当我items or nextPageToken不存在我收到此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

知道为什么吗?我该如何修复它?


您的代码中有两个问题:

  1. 您正在尝试强制解开一个可能为零的可选值。如果您不确定数据是否可用,切勿使用强制解包。
  2. 您正在使用valueForKey:代替objectForKey:用于从字典中检索数据。使用objectForKey:而不是 valueForKey: https://stackoverflow.com/questions/1062183/difference-between-objectforkey-and-valueforkey用于从字典中获取数据。

您可以通过以下方式修复崩溃:

let itemsArray: NSArray?   = response.objectForKey("items") as? NSArray;
let nextPageToken: String? = response.objectForKey("nextPageToken") as? String

var videoIdArray: [String] = []
if let itemsArray = itemsArray
{
    for (item) in itemsArray
    {
       let videoId: String? = item.objectForKey("id")?.objectForKey("videoId") as? String
       if (videoId != nil)
       {
          videoIdArray.append(videoId!)
       }
     }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 从 NSDictionary 读取数据 的相关文章

  • CURL 相当于使用 VBA 的 POST JSON 数据

    我知道这与之前提出的一些问题类似 但有些东西仍然对我不起作用 如何执行以下命令 curl X POST data statements json H Content Type application json user username p
  • 如何读取 IBAction 中的 UITextField 值。我正在以编程方式创建 UITextField

    我怎样才能阅读UITextField值在IBAction 我正在创造UITextField以编程方式 所以我无法设置 property and synthesize使用 Xcode 要生成的代码UITextField如下 for i 0 i
  • 使用 OneSignal/Firebase 从 iOS 设备发送推送通知

    我正在开发一个应用程序 并试图找出当不同用户执行特定操作时如何通知特定用户 我试图避免设置自己的后端服务器 因为我相信我想做的事情可以通过 OneSignal Firebase 来完成 我还没有尝试过 但我认为每个用户都可以获得自己的 On
  • 无法将 NSMutableDictionary 发送到另一个类

    All 我试图将 NSMutableDictionary 响应 发送到我的另一个类 或者更确切地说 让另一个类从这个类中提取字典 当另一个类使用 getResponse 方法时 它返回 null 我附加的代码是我的 XML 解析器 它将我需
  • 来自不同级别的一对值根据邻居成员选择一个

    我正在尝试使用 jq 遍历对象数组并将其转换为 csv 我可以做一些选择和 csv 部分 但我正在努力解决的是如何获得Name每个对象的标签值 json 看起来像这样 Groups Instances InstanceType m5 xla
  • 无法禁用 CALayer>>removeFromSuperlayer 的动画

    我希望从其超级层中删除 CALayer 而无需设置动画 这里发生的事情是图层动画到一个位置 效果很好 但是当动画停止时 执行此代码 将图层返回到其开始位置 并淡出 大概然后从超级层中删除 如何阻止它动画 removeFromSuperlay
  • 如何将一个 SwiftUI View 作为变量传递给另一个 View 结构

    我正在实施一个very自定义 NavigationLink 称为MenuItem并希望在整个项目中重用它 它是一个符合以下条件的结构体View并实施var body some View其中包含一个NavigationLink 我需要以某种方
  • 如何以编程方式创建选项卡栏

    大家好 我有基于导航的应用程序 其中我也需要在视图之一中实现选项卡栏 在一个视图中我需要 5 个选项卡 有人可以建议我以编程方式创建选项卡栏吗 每个选项卡应导航到另一个 xib 建议始终受到赞赏 问候 以下是 Apple 提供的用于以编程方
  • 如何对数组的数组进行 JSON_MODIFY?

    我的结构看起来像这样 Declare layout NVARCHAR MAX N Sections SectionName Section1 SectionOrder 1 Renders RenderName Render1 RenderO
  • 隐藏故事板中的导航栏

    谁能告诉我如何隐藏故事板中的导航栏 我下面的代码在模拟器中运行时工作正常 但它仍然出现在我的故事板中 这真的很烦我 因为它弄乱了我的图像的位置 有人可以帮忙吗 void viewWillAppear BOOL animated super
  • UITableView 在单元格刷新时滚动到顶部

    我有一个 UITableView 其中一个单元格的大小是动态调整的 以适应其中的 UITextView 每当键入一个键时 单元格都会检查计算出的高度是否增加 就像换行符一样 因此它可以告诉表单元格的高度需要重新计算 我用这段代码做到了这一点
  • 应用程序:didReceiveRemoteNotification:未调用 fetchCompletionHandler

    出现了这个功能application didReceiveRemoteNotification fetchCompletionHandler当应用程序被强制退出时不会被调用 我的印象是 无论应用程序处于什么状态 该函数都会被调用 但似乎只有
  • searchDisplayController 在 iOS 8 中已弃用

    如何更正以下内容以免出现警告 我缺少什么 修正时searchResultsController to searchController它给了我一个错误 找不到对象 if tableView self searchDisplayControl
  • 如何在 iPhone sdk 上访问年龄限制家长控制

    有没有办法以编程方式访问 iPhone iPad iPod 上家长控制中设置的年龄限制 如果年龄限制太低 我想禁止使用某些功能 我一直在四处寻找 但也许我没有使用正确的搜索词或其他东西 任何帮助表示赞赏 也许这样行不通 thanks 从 3
  • 如何处理 iPhone 6S Plus 字体大小?

    与其他屏幕尺寸相比 iPhone 6S Plus 的屏幕非常大 我似乎无法找到一种在不以编程方式调整大小的情况下处理标签字体大小的好方法 如何调整标签的字体大小 使其在 iPhone 5 上看起来更小 在 iPhone 6 Plus 上看起
  • 带有 Retina-Tiles 的 MKTileOverlay

    我在 MKMapKit 中加载 512x512px 图块时遇到问题 服务器提供 512x512 jpeg 图块 我在 MKMapView 中找不到自定义视网膜图块的任何解决方案或示例实现 我做什么 当我将它们加载到 MKMapView 中时
  • 在 iOS 中,如何以编程方式填写 pdf 表单字段?

    我需要获取一个现有的 pdf 文件 并以编程方式填写带有文本的表单字段列表 然后保存 pdf 而不将其显示给用户 例如 如果 pdf 文件包含名为 LastName 和 FirstName 的字段 我想将 FirstName 的值设置为 L
  • Swift 上的 USB 连接委托

    Swift 中是否有一个代表可以让我的班级知道何时通过计算机的 USB 插入新设备 我想知道我的程序何时可以使用新设备 Eric Aya 的答案已经相当不错了 但这里有一个 Swift 3 的改编 我把大部分丑陋的东西包裹在一个USBWat
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • 根据 Swift 中的列表选择在 ViewController 之间传递值

    我试图将 listView 选择的选定索引号从一个 ViewController 传递到另一个 ViewController 但遇到了 tableView didSelectRowAtIndexPath 委托运行时间稍晚于prepareFo

随机推荐

  • SurfaceTexture.getTransformMatrix的返回值是什么意思,谁能解释一下?

    每个人 我正在Android中使用SurfaceTexture 但我无法理解它的API getTransformMatrix float mtx API文档如下 Retrieve the 4x4 texture coordinate tra
  • 目标构建失败后 CMake 运行自定义命令

    我知道如何在使用 add custom command 构建目标之后 或之前 运行命令 add custom command TARGET my target POST BUILD COMMAND echo custom command 但
  • Apache RewriteRule 到子目录

    我需要将 myhomepage com 重定向到 myhomepage com sub 当我阅读 apache org docs 1 3 misc rewriteguide html 上的指南时 我不知道他们在说什么 因此我决定友好地询问这
  • 在 WPF WebBrowser 控件中显示字符串中的 html

    我的数据上下文对象包含一个字符串属性 该属性返回我需要在 WebBrowser 控件中显示的 html 我找不到可将其绑定到的 WebBrowser 的任何属性 有任何想法吗 Thanks The WebBrowser has a 导航至字
  • 有效的 XPath 表达式

    只是两个问题 如何检查分配给变量的字符串是否对应于有效的 XPath 表达式 如果请求的资源不存在 如何返回自定义的错误消息 如果 XPath 无效 您将收到异常 如果请求的节点不存在 您将得到空结果 放 例如 from lxml impo
  • 如何设置 MPNowPlayingInfoCenter 的图稿图像

    我一直在尝试更新以下项目中显示的艺术品MPNowPlayingInfoCenter using MPMediaItemPropertyArtwork如以下代码所示 取自苹果的文档 https developer apple com docu
  • MySQL week() 函数以星期六开始

    在 MySQL 中 是否有可能或者如何修改 week 以便一周从星期六开始 我在用WEEK CURDATE 0 获取开始日期为星期日的周数 但是 我想获取起始日为星期六的周数 我想我找到了一种方法 只需将日期移 1 天即可 WEEK CUR
  • jQuery-mobile 1.3 面板始终可见

    在新的 jQuery mobile 1 3 版本中 如何添加一个从一开始就始终可见的左侧面板 该面板将充当导航菜单 Thanks 您可以像这样以编程方式打开它 document on pagebeforeshow index functio
  • 无法更改 Unity 中 Inspector 变量中的数组大小?

    根据我读到的内容 这就是矢量 大小 的设置方式 public Color teamAColors new Color 4 But when the code is run it looks like this 我为 4 设置的数字似乎并不重
  • 为什么 Rails 命令强制显示“new”命令的帮助消息?

    奇怪的是 在某些情况下我无法执行典型的 Rails 命令 例如rails s and rails c 我发现这种情况发生在某个功能分支上 过去也偶尔发生过 但目前适用于我的develop branch 我逆转了任何 rb可以加载并产生任何效
  • 具有多个数据库的 Rails RSpec

    我运行一个 Rails 应用程序 我们正在将注册流程拆分为一个单独的应用程序 注册应用程序有自己独立的数据库 用于 CMS 和收集潜在客户 但它还需要访问主数据库 使用这个效果非常好ActiveRecord Base establish c
  • gob 恐慌解码接口

    我有一个带有未导出字段的结构 应该对其进行 gob 编码和解码 Say type A struct s int func a A Inc a s 显然在这种情况下我需要实施gob GobEncoder and gob GobDecoder接
  • 动画 gif 无法播放 - 鼠标侦听器 - 鼠标输入事件

    我有一个按钮 我已将其替换为图像 悬停时我希望该图像播放动画 gif 我添加了一个鼠标监听器并输入了将图像更改为 gif 的代码 图像变为gif 然而 gif 并没有动画 我在这个网站上查找过以前的答案 很少但没有一个能够提供帮助 Over
  • 如何在 VS Code 中禁用 C++ 错误检查?

    我正在生成 C 示例代码文件 因此它们有很多固有错误 例如虚构的函数名称 我正在尝试删除文件中的所有错误消息和与错误相关的语法突出显示 我想 C 有一些设置 但我找不到它 打开命令面板 CTRL SHIFT P gt C Cpp 切换错误曲
  • 有没有办法在MonoTouch中制作原生的cocoa类库?

    我知道 MonoTouch 将代码编译为本机机器代码 有没有办法使用 MonoTouch 制作一个本机 a 类库 需要明确的是 我不想在两者之间共享代码 因为我知道这是不可能的 我相信这是可能的 但这将是一项艰苦的工作 而且离收缩包装的开箱
  • FragmentStatePagerAdapter 从 API 27 开始已弃用

    FragmentStatePagerAdapter从 API 27 开始已弃用 替代方案是什么FragmentStatePagerAdapter private class MainPagerAdapter extends Fragment
  • “在上下文或道具中找不到“store””我在尝试简单的react-redux代码时收到此错误

    这是我的书单容器 import React Component from react import connect from react redux class BookList extends Component renderList r
  • 在哪里放置 Windows 窗体项目的中央错误处理程序

    在 ASP NET 中我可以使用Application Error在 global asax 中 以便处理任何未处理的错误 Windows 窗体中有等效的吗 是的 它的 AppDomain UnhandledException using
  • 将 Web 服务添加到已有的 Java 项目中

    我是 Java 新手 我有一个Java项目 它在我的 Windows 7 机器上完美运行 我想将该项目的一些功能用作 Web 服务 以便能够在我的 Silverlight 应用程序中使用它们 Silverlight 应用程序和这个 Java
  • Swift 从 NSDictionary 读取数据

    我正在使用这段代码来读取数据NSDictionary let itemsArray NSArray response objectForKey items as NSArray let nextPageToken String respon