gibi değerleri alın: Bütün renklerin bir dizi ayıklamak mümkün olmak istiyorum Swift Sözlük: Bir enum değeri tarafından karma <code>UIColor</code> nesneleri <code>ColorScheme</code> içeren bir sözlük var dizide
var colorsForColorScheme: [ColorScheme : UIColor] = ...
(değerler) bu sözlükte bulunan Ben kullanıldıkça sözlük değerleri (
for value in dictionary.values {...}
) üzerinden yineleme zaman,
values
özelliğini kullanabilirsiniz, ama bu hata verir: bir değerler
Array
dönen yerine
let colors: [UIColor] = colorsForColorSchemes.values
~~~~~~~~~~~~~~~~~~~~~^~~~~~~
'LazyBidrectionalCollection<MapCollectionView<Dictionary<ColorScheme, UIColor>, UIColor>>' is not convertible to 'UIColor'
O görünüyor values
yöntem döndüren bir daha soyut koleksiyon tipi. for-in
döngüsünde bunları ayıklamadan sözlük değerlerini içeren bir Array
almanın bir yolu var mı?
bir uzantı oluşturabilirsiniz. harika çalışıyor! teşekkürler let renkler = [CustomColorObject] (colorsForColorSchemes.values) – bolnad
Swift 2.0 gibi görünüyor, Dictionary.values şimdi bir LazyBidirectionalCollection aksine bir LazyMapCollection döndürür. Ne yazık ki, .array bir LazyMapCollection üzerinde tanımlanmamış. Ancak Dizi (dictionary.values) yolu, dizi türleri bir LazyMapCollection öğesinden nasıl başlatılacağını bildiği için hala iyi çalışır. –
Değerlerin sırasının beklenmedik olabileceğini unutmayın. Örneğin, [0: "küçük", 1: "orta", 2: "büyük"] 'muhtemelen * NOT *" ["küçük", "orta", "büyük"] üretecek * –