2016-07-16 1 views
0

разобран является NSDictionary и я потянув остатки из него черезПолучить индекс из AnyObject списка элементов IOS

если позволить findbalances: AnyObject = разобранные [ «баланс»]

, который дает мне список остатков в формате AnyObject

(
    { 
    "available_amount" = 133519; 
    currency = AUD; 
}, 
    { 
    "available_amount" = 7854; 
    currency = CAD; 
}, 
    { 
    "available_amount" = 88581; 
    currency = EUR; 
}, 
    { 
    "available_amount" = 0; 
    currency = GBP; 
}, 
    { 
    "available_amount" = 63618; 
    currency = INR; 
}, 
    { 
    "available_amount" = 375; 
    currency = NZD; 
}, 
    { 
    "available_amount" = 0; 
    currency = TRY; 
}, 
    { 

    "available_amount" = 2918958; 
    currency = USD; 

} 
) 

Я знаю, что

let whatCurrency = (findbalances[7]["currency"] as! String) 

= USD Но как мне найти это значение [7], если количество объектов меняется?

Я хочу, чтобы соответствовать на

USD

Я попытался

let defaultcurr = "USD" 
let findUSD = findbalances.indexOfObject(defaultcurr) 

, но это дало мне 9223372036854775807

Как только найти 7

+0

Почему не только петлю через него? –

+0

Запуск через него может работать - то, что я хочу сделать, это использовать значения из этой строки. (где валюта = доллары США), так как бы я нашел это? – techguy

ответ

1

9223372036854775807 является NSNotFound.

Вы можете использовать замыкание в качестве аргумента indexOf

let defaultcurr = "USD" 
let findUSDIndex = findbalances.indexOf { ($0["currency"] as! String) == defaultcurr } 

Или вы можете фильтровать весь ряд

let findUSD = findbalances.filter { ($0["currency"] as! String) == defaultcurr }.first 

indexOfObject кажется, использует NSArray. Не делай этого. Используйте Swift родной Array и отдать свой объект коллекции в [[String:AnyObject]]:

if let findbalances = parsed["balances"] as? [[String:AnyObject]] { ... 
+0

Значение типа AnyObject не имеет члена IndexOf, поэтому я использовал indexofObject, и если я заменяю индекс объекта там, я получаю сбой сегментации – techguy

+0

Вот почему я предложил бросить ваш 'AnyObject' в нечто более содержательное/полезное для компилятора -> 'как! [[String: AnyObject]] ' – vadian

+0

PS: Я отредактировал ответ в соответствии с вашей новой информацией. – vadian