繁体   English   中英

Swift 3更新导致错误

[英]Swift 3 updates that cause error

我更新到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中,字符串修剪方法的签名已更改。 这是新方法:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM