2015-12-31 1 views
3

Привет Я просто хочу удалить повторяющиеся объекты должны быть удалены в dictionary я заселение его в tableViewкак удалить повторяющиеся значения из Dict в стремительной 2.0

Вот мой пример кода в «CellForRowAtIndexPath»

controller.titleName = dict["itemName"] as? String 

мой выход:

{ 
    itemName = test; 
}, 
{ 
    itemName = funny; 
}, 
    { 
    itemName = vv; 
}, 
    { 
    itemName = hhh; 
}, 
    { 
    itemName = west; 
} 
+0

Ананд, пожалуйста, проверьте мой ответ. Это правильно. Проверьте его. – user3182143

+0

Ананд Если мой ответ полезен для вас, пожалуйста, отметьте и запустите мой ответ. – user3182143

+0

@ И если вы уже сказали «Thanx man its work», то чего не было в моем ответе? даже вы уже приняли мой ответ? – jay

ответ

1

Во-первых, я думаю, что вы используете массив, чтобы сделать dict так, прежде чем load tableview/collectionview удалите весь реплицируемый объект из вашего массива.

Существует один вариант, который вы должны создать NSSet от NSArray, поэтому в NSSet все реплицированные object автоматически удаляются. а затем от NSSet вы должны создать NSArray. новообращенный набор из массива, как следовать

var set = NSSet(array: myarray) 

Чтобы преобразовать массив для набора

var newarry = set.allObjects as NSArray 
+1

Thanx man его сработало – Anand

+0

эй jay и код, который я работаю, тот, который пытается ответить на его ответ, также – Anand

+0

, вы можете принять только один ответ, и если вы найдете, что оба они правы, тогда вам нужно выбрать, какой из них вы должны принять, и в этом случай, ответ на который в первую очередь должен быть принят – jay

1

Просто попробуйте

let uniqueArr = Array(Set(dict.values)) 
+1

будет ли это работать и для словаря? –

+1

Да, я пропустил один твой, но @ Али Джилд исправил это. Попробуй. –

0

Для вашего вопроса я попытался отдельно, и я получил ответ

var arr = [AnyObject]() 
var arrAppend = [String]() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    let array = ["one", "one", "two", "two", "three", "three"] 
    let uniqueValue = Array(Set(array)) 
    print("The unique value is - \(uniqueValue)") 


    let dictTest = ["itemName":"test"] 
    let dictFunny = ["itemName":"funny"] 
    let dictVVV = ["itemName":"vvv"] 
    let dictHHH = ["itemName":"hhh"] 
    let dictWest = ["itemName":"west"] 
    let dictTT = ["itemName":"tt"] 
    let dictWest1 = ["itemName":"west"] 

    arr.append(dictWest1) 
    arr.append(dictTest) 
    arr.append(dictVVV) 
    arr.append(dictTT) 
    arr.append(dictWest) 
    arr.append(dictFunny) 
    arr.append(dictHHH) 

    print("Array Response: \(arr)") 

    for keyValue in arr as Array 
    { 
     let getDictValueFromArray = keyValue["itemName"] as! String 
     arrAppend.append(getDictValueFromArray) 
    } 
    let unique = Array(Set(arrAppend)) 
    print("the result is-\(unique)") 
} 

Выход для уникальна

the result is-["funny", "test", "west", "vvv", "hhh", "tt"] 
+0

Что я здесь ошибся? Пожалуйста, объясните причину моего голосования. – user3182143

+0

Eric Если я получу URL-адрес, я могу напрямую получать данные с сервера, и я показываю ответ напрямую. Но здесь невозможно получить URL-адрес и другие вещи. Вот почему я создал, как и выше. – user3182143