配列を含むFirebase Data Snapshotからデータを読み込んでいます。 私はこの文字列を[String:AnyObject]という変数にfetcastDictと言う言葉で書き留めました。今すぐに、sensorValuesを素早く読み取り可能な配列に変換したいと思います。 NSArrayの、[INT]にそれをダウンキャストFirebase ArrayをSwift Arrayに変換するには?
- が、それは仕事をdidntの:私は
print(fetchedDict!["sensorValues"].dynamicType)
私が配列にそれを変換するための2つのアプローチを試してみました
オプションですsensorValuesのdynamicTypeをチェックします。 - 遊び場で働いていたミラー機能(最後に表示されます)を書きましたが、悲しいことにiOSアプリケーションでは機能しませんでした。それは私に与えたタイプ 'Swift.Array'(0x117a24028)の値を 'Swift.Int'にキャストできません。
誰かがこれを解決するために私を導くことができますか?ありがとう!
rootRef!.observeEventType(.Value, withBlock: { (snapshot) in
for child in snapshot.children.allObjects {
let snap = child as! FIRDataSnapshot
let fetchedDict = snap.value as? [String: AnyObject]
})
これはfetchedDictです:iOSアプリで作業をdidntの
[
"activityDuration": 15;
"sensorValues": (
5,
24,
24,
13,
22,
4,
42,
13,
3,
4
);
"timestamp": 20160713184023;
]
ミラー機能。引数型としてAnyおよびAnyObjectを試行します。このコードは、しかし、遊び場で動作します。
func tupleToArray(sensorValues: Any) -> [Int] {
let mirror = Mirror(reflecting: sensorValues)
var arr = [Int]()
for child in mirror.children{
let stringedValue = (child.value) as! Int
arr.append(stringedValue)
}
return arr
}
なぜ 'child.value'で読むために?なぜただの子供ではないのですか? Int'? –
この作品のようにループしていますか? fetchedDictのiのための !["sensorValues"]として! Int –
@ÖzgürErsilそれも試してみました...警告を出します子供から無関係な型intへのキャストは常に失敗します。そして私が関数を呼び出すとき - 実行が中断されました。 –