0

parsed は NsDictionary であり、私はそれから残高を引き出しています

if let findbalances: AnyObject = parsed["balances"]

これにより、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を見つけることができますか.

4

1 に答える 1

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]] { ...
于 2016-07-16T17:41:42.323 に答える