2016-02-09 2 views
-3

У меня есть NSArray, называемый retAlbumArray, который идет как это:От NSArray к массиву в Swift

(
    { 
    coverable = 1; 
    "mer_thumb" = "http://www.abcd.org/Uploads/Images/mer_album/56b6fb29d2786.jpg"; 
}, 
    { 
    coverable = 0; 
    "mer_thumb" = "http://www.abcd.org/Uploads/Images/mer_album/56b716368a84f.jpg"; 
}, 
    { 
    coverable = 0; 
    "mer_thumb" = "http://www.abcd.org/Uploads/Images/mer_album/56b71f59cd6b3.jpg"; 
}, 
    { 
    coverable = 0; 
    "mer_thumb" = "http://www.abcd.org/Uploads/Images/mer_album/56b7241fcfe50.jpg"; 
}, 
    { 
    coverable = 0; 
    "mer_thumb" = "http://www.abcd.org/Uploads/Images/mer_album/56b73d9e2790e.jpg"; 
} ) 

Я хочу, чтобы преобразовать NSArray в массив строк, который содержит только значение с ключом «mer_thumb» поэтому я мог бы иметь следующее:

["http://www.abcd.org/Uploads/Images/mer_album/56b6fb29d2786.jpg", "http://www.abcd.org/Uploads/Images/mer_album/56b716368a84f.jpg", "http://www.abcd.org/Uploads/Images/mer_album/56b71f59cd6b3.jpg", "http://www.abcd.org/Uploads/Images/mer_album/56b7241fcfe50.jpg", "http://www.abcd.org/Uploads/Images/mer_album/56b73d9e2790e.jpg"] 

Может ли кто-нибудь помочь мне в этом? Благодаря!

ответ

2

Не тестировался, но это должно работать:

if let array = retAlbumArray.valueForKey("mer_thumb") as? [String] { 
    ... 
} 
+0

Он работал, спасибо! – laser2302

2
retAlbumArray.map({ element in 
    element["mer_thumb"] as? String 
}) 
+0

Я одобрил ваш ответ, поскольку он более «Swifty», чем мой, хотя массив, возвращаемый функцией map, как есть, будет иметь тип '[AnyObject?]'. – Rog

+1

@rog вы можете исправить это с помощью 'element [" mer_thumb "] as? Строка «Я бы также рекомендовал использовать« flatMap »вместо просто карты, поскольку это устранит любые записи с нулевыми значениями. –

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