2016-01-17 2 views
1

У меня есть массив JSON (скажем, dataObj), порожденная SwiftyJSON, и я стараюсь, чтобы удалить его элемент, как это:Как удалить элемент 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 остается неизменным и print показывает в настоящее время dataObj становится

[ нуль, нуля, нуля, ... ]

Что способ действительно удалить элемент для SwiftyJSON?

+0

dataObj.removeAtIndex [m] или dataObj.removeAll() ... и т. Д. – user3441734

+0

Удаление объекта в цикле повторения индексом (увеличения) - очень плохая идея. Предполагая, что у вас есть два элемента, и вы только что удалили объект [0] '. Тогда 'object [1]' становится 'объектом [0'], и индекс' 1' больше не существует. Это приводит к исключению «вне границ». Единственный (безопасный) способ удаления по индексу в цикле повтора удаляется назад. – vadian

+0

@vadian Спасибо, я уберу назад. –

ответ

6

Наконец-то я нашел ответ, чтобы удалить элемент в формате JSON (типа массив), созданный SwiftyJSON:

dataObj.arrayObject?.removeAtIndex(m) 

Кстати, чтобы удалить элемент, когда JSON, возвращаемой SwiftyJSON в словаре типа:

jsonObj.dictionaryObject?.removeValueForKey(keyValue) 
+0

так, dataObj не был массивом? :-) теперь понятно ... – user3441734

Смежные вопросы