gpt4 book ai didi

ios - Swift - 'NSArray' 不是 'inout C' 类型

转载 作者:行者123 更新时间:2023-11-28 10:26:26 27 4
gpt4 key购买 nike

我在 XCode beta 3 中遇到这个错误。不知道这是一个错误还是我在做不该做的事情。无论如何,这是我在 Apple 的官方文档中看到的一个例子。这是代码:

var names = ["Mark" , "Bob" , "Tracy" , "John"]

var reversed = sort(names , { (s1: String , s2: String) -> Bool in return s1 > s2
})

这是一种使用闭包的简单排序。

最佳答案

这里有几个问题:

切勿在未指定类型的情况下声明泛型。不要使用 Array , 使用 Array<String> .但是,在这种情况下,您不需要 : Array<String部分,您不需要输入 as Array<String> .只需推断类型即可。

let names = ["Mark", "Bob", "Tracy", "John"]

现在,这是一个常量数组。数组是一种值类型。无法修改常量值类型。

sort函数正在尝试对数组进行排序。它不会创建一个新数组,它会对您作为参数传递的数组进行排序。然而,由于它是一个值类型,它不能是一个常量,你必须通过引用传递它:

var names = ["Mark", "Bob", "Tracy", "John"]
sort(&names, >)

如果您不想对原始数组进行排序,而是想创建一个新数组,请使用 sorted功能。

let names = ["Mark", "Bob", "Tracy", "John"]
let sortedNames = sorted(names, >)

请注意,这在 Beta 2 和 Beta 3 之间发生了重大变化。

关于ios - Swift - 'NSArray' 不是 'inout C' 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com