Int 不符合协议“StringLiteralConvertible”

2024-04-08

我试图在天气应用程序中解析 json,但遇到了一个我无法克服的障碍。

我确实在以下代码中收到错误“类型‘int’不符合协议‘StringLiteralConvertible’”。 我尝试过转换 jsonResult["main"] ,但这确实给出了错误“后缀的操作数应该具有可选类型,类型是 AnyObject”。我是否需要以某种方式向下转换数组,如果需要,我应该如何做? 我对此进行了很多搜索,但在其他帖子中找不到任何帮助。代码如下。

func updateWeatherInfo(latitude: CLLocationDegrees, longitude: CLLocationDegrees) {
    Alamofire.request(.GET, AlongRequest)
        .responseJSON { (_, _, JSON, error) in
            println(JSON)
            self.updateUISuccess(JSON as NSArray!)
    }
}

func updateUISuccess(jsonResult: NSArray) {
    self.loading.text = nil
    self.loadingIndicator.hidden = true
    self.loadingIndicator.stopAnimating()

    if let tempResult = ((jsonResult["main"] as NSArray)["temp"] as? Double)

如果您提供要尝试解析的 JSON,那么给出明确的答案会更容易,但您收到的错误消息很明确。

该错误是因为您试图访问您声明为NSArray带有字符串下标的实例,在这一行中出现两次:

if let tempResult = ((jsonResult["main"] as NSArray)["temp"] as? Double)

jsonResult被声明为NSArray参数,然后你正在铸造jsonResult["main"] to NSArray在尝试使用下标之前["temp"]。这里的问题是NSArray(以及内置 Swift 数组)仅使用基于整数的下标。该错误表明 Swift 编译器期望出现Int,您提供了一个字符串文字。

要解决此问题,您需要朝两个方向之一进行。如果您尝试访问的结构实际上具有这些字符串键,那么您应该使用NSDictionary代替NSArray在这两种情况下。如果不是,并且它是一个整数索引数组,那么您应该使用整数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Int 不符合协议“StringLiteralConvertible” 的相关文章

  • 使用 Newtonsoft.Json.NET 搜索 JSON 根对象的正确 JsonPath 表达式是什么?

    大多数例子涉及Stefan G ssner 的书店示例 http goessner net articles JsonPath index html e3 但是我正在努力为简单对象 无数组 定义正确的 JsonPath 表达式 Id 1 N
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • 编码:类型错误:write() 参数必须是 str,而不是 bytes

    我对 python 有初步的了解 但不清楚处理二进制编码问题 我正在尝试运行 firefox webextensions 示例中的示例代码 其中 python 脚本发送由 javascript 程序读取的文本 我不断遇到编码错误 蟒蛇代码是
  • Swift 3.0 Pin 颜色注释在 MapView 中没有改变

    我有兴趣根据案例场景更改注释的图钉颜色 在一个函数中 我发送了一个数组 用于确定引脚注释的颜色 到目前为止 我已经设置了一个名为 ColorPointAnnotation 的子类 它将确定 pinColor 然后 在 switch 语句中
  • 键绑定 - 鼠标中键与 Sublime Text 2

    有谁知道是否可以将鼠标中键绑定到 Sublime Text 2 中的操作 我知道可以进行一些鼠标交互 因为您可以使用后退和前进按钮 基本上 我将使用此按钮通过 sFTP 插件上传文件 这样我需要按下的按钮数量就会从 3 个减少到 1 个 目
  • 如何使用 Swift 获取 YouTube 频道的所有播放列表?

    我的问题不是关于从一般频道检索视频 我只想获取该频道创建的所有 播放列表 并检索每个播放列表的缩略图 标题和视频数量 这是一个 YouTube 频道示例 正如您所看到的 有很多已创建的播放列表 截至目前 我只能获取某个频道最新上传的视频 在
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 显示键盘时如何在 TextView 下方添加更多填充

    当我在 ScrollView 中有 TextField 并点击它时 键盘会按预期显示 但似乎 TextField 已向上移动到足以显示输入区域 但我希望移动到足够的位置 以便整体可见 否则它看起来像是被剪裁了的 我找不到改变这种行为的方法
  • PrototypeJS 版本 1.6.0.2 覆盖 JSON.parse 和 JSON.stringify 并破坏 socket.io 功能

    基本上 socket io 使用 nativeJSON 来编码和解码数据包 而我的问题是我必须使用这个版本的原型来改变 JSON 行为 当我应该进入服务器时 如下所示 socket on event function a b c 我明白了s
  • 使用 urllib2 从 FlightRadar24 获取数据时出现问题

    我正在尝试使用下面的脚本从 FlightRadar24 获取数据 基于这个答案 https stackoverflow com a 526695 3904031来处理cookies 当我当前在浏览器中输入该 url 时 我会得到一个不错的长
  • Obj-C / Swift 项目中的致命陷阱异常

    我开始将 Swift 代码集成到我的 Obj C 项目中 一切都进展顺利 但今天 当我更新到 Xcode 6 1 时 事情变得很糟糕 我从之前运行良好的 Swift 代码中收到了许多 陷阱 异常 第一次崩溃位于我的 UIFont 扩展中 这
  • Swift - 预期 '{' 启动 setter 定义

    我正在关注高级 swift WWDC 2014 视频 使用类上的下标来委托给类属性 但使用与视频中相同的语法时出现错误 enum Direction case North South East West class Place Thing
  • 列出 JSON 的所有键和值

    假设我有一些如下所示的 JSON items item id 0001 type donut name Cake ppu 0 55 batters batter
  • WKWebView:无需 Javascript 即可缩放PageToFit 行为

    如何获得scalesPageToFit显示在 HTML 内容中的行为WKWebView 不使用 JavaScript 在我们的例子中需要禁用 JS 抱歉没有发布任何代码 但我不知道如何实现这一目标 我所知道的和我找到的所有解决方案都是基于J
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 如何在 UITableViewCell 上使用自定义初始值设定项?

    我有一个自定义 UITableViewCell 我想在我的表视图中使用它 这是我的单元格代码 class ReflectionCell UITableViewCell IBOutlet weak var header UILabel IBO
  • AudioPlayer 和锁屏/控制中心控制 Swift [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我是斯威夫特的新手 我写信是因为我想问一个问题 我和我的朋友正在开发一个音频播放器 但我们遇到了问题 播放器还可以在后台
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male

随机推荐

  • NSUTF8StringEncoding 导致文件在 TextEdit/Pages 中渲染不正确,但在 BBEdit/vi 中则不会

    我遇到了一个有点奇怪的问题 每当我在 iOS 应用程序中创建新的文本文件时 我都会将其编码设置为NSUTF8StringEncoding 如果我编辑文件并输入任何带变音符号的字符并保存更改 则变音符号在某些应用程序 如 BBEdit Tex
  • 具有核心动画页面和长列表的聚合物芯片到卡图案

    一般来说 我发现很难使用core animated pages当我有一个滚动页面的很长列表时 聚合物元素可实现芯片列表到卡片类型模式 我认为困难在于 一旦过渡完成 隐藏部分就会从布局中取出 我很难找到解决这个问题的方法 简单的插图 JSFi
  • “Josephus-p‌r‌o‌b‌l‌e‌m” 在 python 中使用列表

    我想知道是否可以使用 python 中的列表来解决约瑟夫问题 简单来说 约瑟夫问题就是在圆形排列中找到一个位置 如果使用事先已知的跳过参数来处理执行 那么该位置将是安全的 例如 给定一个圆形排列 例如 1 2 3 4 5 6 7 并且ski
  • 无法使用 mailto uri 创建具有多个收件人的新邮件

    我正在使用创建一个Windows 8 1 应用商店 in WinRT 我无法通过用逗号或分号分隔每封电子邮件来使用 mailto uri 创建具有多个收件人的新邮件 两者都会给我相同的错误 Invalid URI The hostname
  • JUnit4 根据自定义 java 注释跳过测试

    我希望根据我用 Java 创建的自定义注释来执行 JUnit4 测试 此自定义注释的目的是让 JUnit4 注意到 仅当机器的平台与注释中指定的平台匹配时才应运行测试 假设我有以下注释 public interface Annotation
  • 在主程序.cs 文件中运行另一个 .cs 文件

    一般来说 我对编程很陌生 所以我确信这个问题很天真 因此 我编写了一个简单的神奇八球程序 我想转向冒险游戏 但我认为在游戏中包含八球程序会很简洁 就像制作一个控制台菜单 您可以在其中选择任一游戏 所以 我的问题是 我不知道如何将我的八球程序
  • 解析并获取 JSON 数据

    我有一个来自网站的 json 看起来像 Meta Data 1 Information Daily Prices open high low close and Volumes 2 Symbol MSFT 3 Last Refreshed
  • 以编程方式设计 GUI - 嵌套布局和多个小部件 (Qt) 的良好实践

    我有兴趣更好地理解Qt为此我想see 如何仅以编程方式完成嵌套布局和多个小部件 GUI 的相对复杂示例 即不使用 Qt Creator 的设计 我见过几个示例代码仅演示非常简单的布局 并且几乎总是不使用头文件 事实上我见过的大多数例子 du
  • Skip 的性能(以及类似功能,如 Take)

    我刚刚看了一下源代码Skip Take NET Framework 的扩展方法 在IEnumerable
  • WPF相当于ActiveControl?

    在表单中 我可以简单地使用 ActiveControl name 来获取活动控件的名称 然而在 WPF 中这不起作用 与 Activecontrol name 等效的 WPF 命令是什么 我会选择 C 或 VB 无论哪种方式 谢谢你 有几种
  • 实体框架、AutoMapper、处理实体更新

    我最近才开始使用Entity Framework 1 0 相信我已经开始感受到大家都在谈论的痛苦了 我正在尝试使用最佳实践 因此我有一组 DTO 可以通过 AutoMapper 映射到我的实体或从我的实体映射 真正的问题是当我尝试更新对象时
  • 正则表达式,始终在末尾替换字符串的一部分

    我正在尝试替换一个字符串 以便该网址的一部分始终到达末尾 google com to the end faa google com to the end faa fee google com to the end faa fee fii 使
  • Django中获取特定半径内的所有点

    对于 Google 地图应用程序 我需要创建一个查询 在给定每个点的纬度 经度的情况下 选择数据库中位于给定纬度 经度特定半径范围内的所有项目 在 Django ORM 中是否有一种有效的方法来做到这一点 到目前为止 我想出的最好方法是选择
  • 有条件的 Spring 配置

    是否可以在 Spring 配置中使用条件表达式 例如 我想定义两个不同的连接器 如下所示 连接器 1
  • Maven:子模块无法继承父模块的依赖项

    这是我的父母 pom
  • EditText 视图返回 null

    我有两个活动 一个 主页 片段活动和一个普通的 选项 活动 在我的主页片段活动中 我尝试使用从选项活动检索的数据来更新 EditText 视图 不幸的是 由于某种原因 片段活动无法检测到我的视图以进行更新 我不太清楚为什么 这是我的功能 u
  • Android:可以获得自定义 R.id

    是否可以让 android 给我一个自定义 id 例如 如果我已经在 xml 中定义 R id some layout R drawable some drawable 有没有这样的功能 R custom id a custom id 这样
  • 如何使用 CSS 和 Javascript 缩小 HTML?

    我有一个 html 文档 其中包含 CSS 和 Javascript 无外部文件 有没有一些在线工具可以minify文档和Javascript 的占用空间非常小 我看到许多脚本有点不可读 其中所有变量和函数名称都被替换为单字母名称等 请指教
  • Java 错误:找到接口...但需要类

    我的代码中出现了一个奇怪的运行时错误 Found interface SomeInterface but class was expected 怎么会发生这种事呢 接口如何实例化 Update 回应一些答案 我正在针对同一组库进行编译和运行
  • Int 不符合协议“StringLiteralConvertible”

    我试图在天气应用程序中解析 json 但遇到了一个我无法克服的障碍 我确实在以下代码中收到错误 类型 int 不符合协议 StringLiteralConvertible 我尝试过转换 jsonResult main 但这确实给出了错误 后