2016-01-17 88 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