Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift中用于接受数组或字符串的函数参数_Swift - Fatal编程技术网

swift中用于接受数组或字符串的函数参数

swift中用于接受数组或字符串的函数参数,swift,Swift,我想在Swift中编写一个名为remove的函数,该函数将接受数组或字符串,并从字典中删除字符串(如果是字符串),否则它将从字典中删除数组中存在的所有字符串。另外,我编写的这个函数正在禁用Xcode编辑器中的样式 func remove(key: AnyObject){ if key is Array{ for (index, value) in enumerate(key){ if -1 < self._getDataStoreKeyInd

我想在Swift中编写一个名为
remove
的函数,该函数将接受数组或字符串,并从字典中删除字符串(如果是字符串),否则它将从字典中删除数组中存在的所有字符串。另外,我编写的这个函数正在禁用Xcode编辑器中的样式

func remove(key: AnyObject){
    if key is Array{
        for (index, value) in enumerate(key){
            if -1 < self._getDataStoreKeyIndex(value){
               self._removeProperty(value)
            } else{
                self._removeItem(value)
            }
        }
    }else{
        if -1 < self._getDataStoreKeyIndex(key){
           self._removeProperty(key)
        }else{
            self._removeItem(key)
       }
    }
}
func删除(键:AnyObject){
如果键是数组{
用于枚举(键)中的(索引、值){
如果-1
代码中的其他函数是正确的,因为如果我对该函数进行注释,我的项目将成功构建。我的代码有什么问题


我遇到了一个分割错误

<unknown>:0: error: unable to execute command: Segmentation fault: 11
:0:错误:无法执行命令:分段错误:11

问题的核心是试图转换为“Array”,这是一个泛型类。相反,您需要转换为泛型的特定实例化,例如“Array”或“[String]”

您还存在一个问题,即您无法枚举任何对象,组合起来,您需要以下内容:

func remove(key: AnyObject) {
    if let array = key as? Array<String> {
        for (index, value) in enumerate(array) {
        }
    }
    else {
    }
}
还有一个想法。。。这两个操作实际上并不相似,也没有多少代码共享。为什么不定义签名不同的不同函数:

func remove(key:String) {
}

func remove(array:[String]) {
    for string in array {
        remove[string]
    }
}

这消除了有人调用“删除(5)”的可能性。

问题和/或问题是什么?此函数不起作用。代码出了什么问题?您需要提供更多详细信息。。。什么不起作用?坏结果?异常?我遇到了一个分段错误。我编辑了这个问题。在函数的开头设置一个断点,然后逐步检查代码,以查看崩溃的确切位置。
func remove(key:String) {
}

func remove(array:[String]) {
    for string in array {
        remove[string]
    }
}