ios - swift 动态添加indexpath,数据类型出错怎么解决?
怪我咯
怪我咯 2017-04-18 09:47:06
[iOS讨论组]

创建了一个可变数组,往数组里面插入相关节点的时候indexpath

报错信息为:cannot convert value of type 'NSMutalbeArray' to expected argument type '[IndexPath]'

//获取需要修正的indexpath

let indexPathArray = NSMutableArray()
    for i in startPosition...endPosition {
        let tempIndexPath:NSIndexPath = NSIndexPath(row: i, section: 0)
        indexPathArray.add(tempIndexPath)
    }
    //插入或者删除相关节点
    if expand {
        self.insertRows(at: indexPathArray, with: UITableViewRowAnimation.none)
    }
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(2)
天蓬老师

insertRows(at: _, with: _) 这个方法,第一个参数,是一个 [IndexPath]
既然你用 swift,就推荐使用swift数据类型

这个[IndexPath] 也就是 Array<IndexPath>
Array 的定义是 swift 中的一个 struct
NSMutableArray 是一个 objc class ,与 struct 是完全不兼容的两个东西

我推荐的写法:

    var indexPathArray = [IndexPath]() // 看这里
    for i in startPosition...endPosition {
        let tempIndexPath = IndexPath(row: i, section: 0)
        indexPathArray.append(tempIndexPath) // 和这里
    }
    //插入或者删除相关节点
    if expand {
        self.insertRows(at: indexPathArray, with: .none)
    }
黄舟
let indexPathArray: [IndexPath] = []

并且,在 Swift 3 中,移除了 NS 前缀,不要使用 NSIndexPath,而是用 IndexPath

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号