swift中用于接受数组或字符串的函数参数
我想在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
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]
}
}