如何在Swift中转换NSArray的元素类型

约翰

我创建了一个 NSFetchedResultsController

let fetchRequest = NSFetchRequest(entityName: "User")
        fetchRequest.sortDescriptors = [NSSortDescriptor(key: "recordName", ascending: true)]

        _frcU = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: _managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
        _frcU!.delegate = self
        _frcU!.performFetch(nil)

然后在numberOfRowsInSection方法中,我想检查第一部分中的行号

    override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {

            var numberOfRowsInSection = 0
            if _frcU {
/*here something  wrong -> */ let o: NSFetchedResultsSectionInfo = _frcU?.sections().firstObject as NSFetchedResultsSectionInfo
                numberOfRowsInSection = o.numberOfObjects
            }
        }

但它说:ST6(firstObject)不符合协议“ NSFetchedResultsSectionInfo”

为什么,我应该如何改写呢?

约翰

可行的解决方案是:

numberOfRowsInSection = ((_frcU!.sections as NSArray).firstObject as NSFetchedResultsSectionInfo).numberOfObjects

有两个基本区别

1)!标记

2)“广播”到NSArray

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章