斯威夫特 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的主要内容,如果未能解决你的问题,请参考以下文章