2016-01-17 62 views
1

我具有由SwiftyJSON产生的JSON阵列(比如dataObj)和I尝试以除去其元件是这样的:如何删除SwiftyJSON元素?

let count=dataObj.count 
for var m=x; m<count; ++m { 
    dataObj[m] = nil // there is no removeAtIndex() somehow 
} 

print(dataObj.count) 
print(dataObj) 

执行之后,dataObj.count保持不变,现在dataObjprint显示变得

[空,空 , 空, ... ]

什么是真正删除元素的方式SwiftyJSON?

+0

dataObj.removeAtIndex [m]或dataObj.removeAll()...等 – user3441734

+0

通过(增加)索引删除重复循环中的对象是一个非常糟糕的主意。假设你有两个元素,你刚刚删除了'object [0]'。然后'object [1]'变成'object [0]',并且没有索引'1'了。这会导致一个相当“超越界限”的异常。在重复循环中通过索引移除的唯一(安全)方法是向后移除。 – vadian

+0

@vadian谢谢我将向后移除。 –

回答

6

最后,我发现回答为在JSON(阵列型)由SwiftyJSON创建删除元素:

dataObj.arrayObject?.removeAtIndex(m) 

顺便提及,以除去当JSON在字典类型返回由SwiftyJSON的元素:

jsonObj.dictionaryObject?.removeValueForKey(keyValue) 
+0

那么,dataObj不是一个数组? :-)现在很清楚... – user3441734