2015-08-20 28 views
7

Swift'de bir şey bulamadım. Bir dizide benzersiz değerler bulmayı bulduk, ancak bu değil. Oldukça basit geliyorsa, ... MaalesefHızlı bir şekilde bir diziye benzersiz değerler ekleyin

Ama şu dizi

var selectedValues = [String]() 

Ve Ayrıştırma sorgusu

var objectToAppend = object.objectForKey("description")! as! String 

şudur gelen aşağıdaki değeri nasıl bi'şey yapıyor olması o anda.

self.selectedHobbies.append(objectToAppend) 

Ancak, sorgu tekrarlanan zamanlarda gerçekleştiği için, tekrarlanan değerler eklenir. Çalışıyor, ama sadece hafızayı boşa harcamamak ve sadece benzersiz değerleri korumak istiyorum.

Hızlı bir şekilde nasıl çözüleceğine dair herhangi bir fikir var mı?

cevap

10

Benzersiz değerleri garanti eden Set kullanabilirsiniz.

var selectedValues = Set<String>() 
// ... 
selectedValues.insert(newString) // will do nothing if value exists 

Elbette, Set öğelerinin öğeleri sipariş edilmez.

Siparişi saklamak isterseniz, Array ile devam edin, ancak eklemeden önce kontrol edin.

if !selectedValues.contains("Bar") { selectedValues.append("Bar") } 
+0

Teşekkürler dostum !!! : ^) – GuiSoySauce

+0

kod sözdizimini korumak mümkün, ancak '' Set yerine '[String]' kullanmak mümkün mü? A 'Set ', bir '[String]' e dönüştürebildiğim için benim için fazla bir şey kullanmıyor. Denedim çok fazla şansım yok. – GuiSoySauce

+0

@Mundi "İçerme" kontrolü yapmanız gerekmez. Takarsanız ve öğe zaten varsa, hiçbir şey olmaz. – Alexander

İlgili konular