モーションセンサからの走行トリップをフィルタリングするコードを書いています。自信を持って、自動車イベント 次のオブジェクトに基づくフィルタ配列
- 同じに以下のすべてのモーションイベントを追加します。以下に基づいて、ネストされた配列に部分配列を追加するために、私はこれを行うための最善の方法を考え出したですそうでなければ言う最初の確信のある観察までイベントの配列。
automotive confidence 2 //Add automotive confidence 2 //Add automotive confidence 2 //Add walking confidence 2 //Add the sub-array to the master array and start over on the next confident automotive event.
例えば
現在、私はそれをこのようにやっている:
//Remove all uncertain values.
let confidentActivities = activities!.filter{$0.confidence.rawValue == 2}
var needsNew = true
var automotiveActivities:Array<Array<CMMotionActivity>> = Array() //Master array to contain subarrays of automotiveactivity arrays
var automotiveActivitySession:Array<CMMotionActivity> = Array()
for activity in confidentActivities {
if activity.automotive && (!activity.cycling && !activity.running && !activity.walking){
if needsNew {
needsNew = false
}
automotiveActivitySession.append(activity)
} else {
if !needsNew {
//If user is no longer in car, store a cpoy of the session and reset the array
automotiveActivities.append(Array(automotiveActivitySession))
automotiveActivitySession = []
needsNew = true
}
}
}
このソリューションは非常にエレガントではありません。 SwiftのArray.filter{}
を使用してこの並べ替えをよりきれいにする方法はありますか?