Swift移除类内函数类型数组元素时遇报错的技术求助
解决Swift数组
remove(at:)出现“Expression resolves to an unused function”错误 这个错误其实很好理解——Array.remove(at:)方法会返回被移除的元素,而Swift编译器会严格检查未使用的返回值,当你直接调用这个方法却不处理它的返回结果时,就会抛出这个提示。
针对你的场景,这里有两种简单的解决方式:
1. 忽略返回值(如果你不需要被移除的函数)
如果你不需要用到被删掉的那个生成[UIBezierPath]的函数,可以用下划线_来显式告诉编译器你故意忽略返回值:
_ = actualFormNamesFromFormClass.remove(at: i)
2. 保留返回值(如果你需要使用被移除的函数)
如果之后还要用到被移除的那个表单函数,直接把它赋值给一个变量就好:
// 移除并保存被删除的函数 let removedFormGenerator = actualFormNamesFromFormClass.remove(at: i) // 后续可以调用这个函数生成路径数组 let bezierPaths = removedFormGenerator()
另外还要额外提醒一句:调用remove(at:)前一定要确保索引i是合法的(也就是0 <= i < actualFormNamesFromFormClass.count),否则会触发数组越界的运行时崩溃,这个坑可别踩哦!
内容的提问来源于stack exchange,提问作者Thijs van der Heijden
相关产品推荐
相关产品推荐

