当前位置: 首页 > 知识库问答 >
问题:

Swift新手,手动将Swift 2转换为Swift 5有困难

齐向笛
2023-03-14

当我年轻的时候,我做了一个应用程序,我现在试图修复,然后改进,但我有几个问题转换Swift2到Swift5,应用程序不会编译

问题1:无法将“(NSError)->()"类型的值转换为预期的参数类型”((错误)->Void)?“

参考这两行代码:

}) { (error:NSError) in
        print(error.localizedDescription)

问题2:类型Any的值没有下标

参照这些行:

key = snapshot.key
itemRef = snapshot.ref

if let shareContent = snapshot.value!["content"] as? [[String:Any]] {
    content = shareContent
    
}
else{
    content = ""
}
if let shareUser = snapshot.value!["addedByUser"] as? [[String:Any]] {
    addedByUser = shareUser
}else{
    content = ""

问题3:表达的类型不明确,没有更多的上下文

FIRAuth.auth()?.signInWithEmail("", password: "", completion: { (user:FIRUser?, error:NSError?) in
            if error == nil {
                print(user?.email)

如果有人能帮上忙,我会很感激的

共有1个答案

淳于亦
2023-03-14

问题1)和3):不要注释类型,在Swift3+中,错误已变成符合error的类型

}) { error in
    print(error.localizedDescription)

关于3)在Firebase文档中寻找合适的类型,它不再是(firuser?,nserror?)了。

问题2):在Swift3+中,编译器必须知道任何下标对象的静态类型。如果value预期是一个字典,则必须有条件地向下转换它

if let sharedValue = snapshot.value as? [String:Any],
    let shareContent = sharedValue["content"] as? [[String:Any]] {
    content = shareContent
    
}
 类似资料:
  • 我正在运行db查询,并得到以下Json格式的输出。有没有办法将下面的Json输出转换成空手道格式的.csv文件(csv格式),或者我们需要编写java实用工具来完成这件事 如果karate内置了将json转换为csv文件功能,请告诉我

  • 为了能使用whistle的所有功能,请记得将whistle升级到最新版本,版本变更点请查看:CHANGELOG 执行命令更新whistle(Mac或Linux用户,如果安装过程出现异常,请在命令行前面加sudo,如: sudo npm install -g whistle): # 以下命令都可以更新whistle $ npm install -g whistle # or $ npm instal

  • 自学量角器,解决非角度web应用程序的问题,并从选择控件中获取所有值的列表。这是html,但似乎无法验证列表。(该站点的第一个权重选择框) http://halls.md/body-surface-area/bsa.htm 和我失败的语法。我的脚本成功执行引用了元素和选项,但无法正确评估列表中选项值的捕获:

  • 问题内容: 有没有一种方法可以将Swift结构的地址转换为无效的UnsafeMutablePointer? 我尝试了一下但没有成功: 谢谢! 编辑: 我实际上正在尝试 将上下文 移植到Swift中 学习CoreAudio 的第一个示例。 这是我到目前为止所做的: 我正在努力留在Swift中,但是如果事实证明这是一个问题而不是优势,那么我最终将链接到C函数。 编辑:底线 如果您因为试图在Swift中

  • 我想在Swift中将转换为。像这样的基本强制转换不起作用,因为这些类型不是原语,不像Objective-C中的s和s

  • 问题内容: 我想转换为,所以我写了一个const ,并尝试使用它进行转换。但是,代码会引发错误: 但是,如果我在分配后推迟类型转换,则代码可以解决。 我的问题: 这两个代码之间有什么区别吗? 为什么第一个会引发编译错误? 问题答案: 请参阅:https://golang.org/ref/spec#Constant_expressions 类型化常数的值必须始终可以由常数类型的值准确表示。以下常量表