我更新到 swift 3.0 后出现这两个错误,请帮忙。下面是代码和图片
我在 self.blockfinish 处遇到错误
var blockFinish: ((_ selectedTags: Array<Tag>, _ unSelectedTags: Array<Tag>) -> ())!
func finishTagController() {
var selected: Array<Tag> = Array()
var unSelected: Array<Tag> = Array()
for currentTag in tags {
if currentTag.isSelected {
selected.append(currentTag)
}
else {
unSelected.append(currentTag)
}
}
self.dismissViewControllerAnimated(true, completion: { () -> Void in
self.blockFinish(selectedTags: selected, unSelectedTags: unSelected)
})
}
这里我得到一个错误 let ("addTagView.textEdit.text.stringByTrimmingCharactersInSet(spaceSet)")
func createNewTag() {
let spaceSet = NSCharacterSet.whitespaces
let contentTag = addTagView.textEdit.text.stringByTrimmingCharactersInSet(spaceSet)
if strlen(contentTag) > 0 {
let newTag = Tag(isSelected: false, isLocked: false, textContent: contentTag)
tags.insert(newTag, atIndex: tags.count)
collectionTag.reloadData()
}
cancelEditTag()
}
最佳答案
字符串修剪方法的签名在 Swift 3.0 中发生了变化。 Here is the new method:
func trimmingCharacters(in set: CharacterSet) -> String
所以代替:
let contentTag = addTagView.textEdit.text.stringByTrimmingCharactersInSet(spaceSet)
你会这样做:
let contentTag = addTagView.textEdit.text.trimmingCharacters(in: spaceSet)
编辑:
blockFinish
在调用站点不采用任何参数名称。
替换:
self.blockFinish(selectedTags: selected, unSelectedTags: unSelected)
与:
self.blockFinish(selected, unSelected)
关于ios - 导致错误的 Swift 3 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050785/