gpt4 book ai didi

ios - 制作 nsarray 时出现 Swift 参数错误

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

XCode 6.3.1、swift 1.2

NSArray arrayByAddingObjectsFromArray 的文档说:

func arrayByAddingObjectsFromArray(otherArray: [AnyObject]) -> [AnyObject]

编译器中的错误信息:

xxx.swift:127:40: '([AnyObject]) -> [AnyObject]' is not convertible to 'NSArray'

func selectRowsByUUID(selectedUUIDs: [AnyObject])
{
// use a set so we dont go all N**2
var selectedUUIDArr2: NSArray = NSArray.arrayByAddingObjectsFromArray(selectedUUIDs!)
...

func selectRowsByUUID(selectedUUIDs: [AnyObject]?)
{
var selectedUUIDArr: NSArray = NSArray.arrayByAddingObjectsFromArray(selectedUUIDs!)
...

此时我其实想做一个 NSSet,但是 NSArray 对大多数人来说更熟悉,所以我以它为例。

 var selectedUUIDSet: NSSet = NSSet.setByAddingObjectsFromArray(selectedUUIDs)

如有任何帮助,我们将不胜感激。

最佳答案

您将 arrayByAddingObjectsFromArray() 作为类方法调用,但是它是一个实例方法:它通过添加来自一个数组到另一个数组。所以这会编译

let selectedUUIDArr = NSArray().arrayByAddingObjectsFromArray(selectedUUIDs)

并将selectedUUIDs中的对象添加到返回的空数组中通过 NSArray()。但是同样可以更容易地实现

let selectedUUIDArr = selectedUUIDs as NSArray

setByAddingObjectsFromArray 也是一个实例方法,所以这个会编译

let selectedUUIDSet = NSSet().setByAddingObjectsFromArray(selectedUUIDs)

但使用 NSSet(array:) 构造函数更容易:

let selectedUUIDSet = NSSet(array: selectedUUIDs)

你也可以考虑使用原生的 Swift Set,例如

func selectRowsByUUID(selectedUUIDs: [NSObject])
{
let selectedUUIDSet = Set(selectedUUIDs)
// ...
}

关于ios - 制作 nsarray 时出现 Swift 参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061260/

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