斯威夫特 3 NSMuttableArray

Posted

技术标签:

【中文标题】斯威夫特 3 NSMuttableArray【英文标题】:Swift 3 NSMuttableArray 【发布时间】:2016-11-19 13:09:29 【问题描述】:

非常感谢您的帮助。 我声明了新的空数组:

var cellDescriptors = 任意

但是当我尝试在某个地方使用它时,我总是收到相同的错误 =“Type 'any' has no subscript members”。

例如:

var cellDescriptors = [Any]()
var visibleRowsPerSection = [[Int]]()

func loadCellDescriptors() 
if let path = Bundle.main.path(forResource: "CellDescriptor", ofType: "plist") 
cellDescriptors = NSMutableArray(contentsOfFile: path)as AnyObject?
    getIndicesOfVisibleRows()
    tblExpandable.reloadData()

我读了很多,发现是 Swift 3.0.1 中的一些更改,但我不明白,我需要做哪些更改来修复它。

我尝试使用以下内容:swift 3: Type 'Any?' has no subscript members

但不幸的是,它不适用于我的情况。 也尝试使用 [AnyHashable:Any]。

非常感谢!

【问题讨论】:

你通常不应该在 Swift 中使用 NSMutableArray。除此之外,错误在哪一行? 我需要使用什么? “let myArray =...”行出现错误 好的。我想我知道是什么问题,但我不知道它是如何连接到 swift 3 的。如果我有一个字典数组,我如何获得特定字典的特定键的值? cellDescriptors的声明是什么? 您能否将其编辑到您的问题中,以便正确突出显示语法? 【参考方案1】:

您正在尝试为编译器不知道是Collection 的内容下标。 cellDescriptors[Any]cellDescriptors[indexPath.section]Any,而您正在尝试为 Any 下标。

首先,不要在 Swift 中使用 NSMutableArray。您需要将您的cellDescriptors 声明为Array<Array<Something>>(又名[[Something]]),这样当您将其下标一次indexPath.section 时,您会得到一个Array<Something>(又名[Something])。最后,您可以再次下标以获取您的Something。将Something 更改为您实际处理的任何类型。

【讨论】:

以上是关于斯威夫特 3 NSMuttableArray的主要内容,如果未能解决你的问题,请参考以下文章

平移图像后面的黑色背景。斯威夫特 3

为啥导航栏中没有显示标题?斯威夫特 3

UIImageView 周围的填充。斯威夫特 3

斯威夫特 3 |核心数据 |自定义实体

斯威夫特 3 NSMuttableArray

tableView Cell 不显示数据,这是啥问题? (斯威夫特 3)