【发布时间】:2016-10-05 22:00:46
【问题描述】:
arrayOfDicts 被声明为
let accelManager = CMSensorRecorder()
let motionManager = CMMotionManager()
var arrayOfDicts:[NSDictionary] = []
函数定义为
func startMotionManager() {
WKInterfaceDevice.current().play(.start)
self.arrayOfDicts = []
if motionManager.isAccelerometerAvailable {
motionManager.accelerometerUpdateInterval = 0.01
let handler:CMAccelerometerHandler = {(data: CMAccelerometerData?, error: NSError?) -> Void in
self.arrayOfDicts.append([
"timestamp":data!.timestamp,
"x":data!.acceleration.x,
"y":data!.acceleration.y,
"z":data!.acceleration.z
])
//print("timestamp: ", data!.timestamp, ", x: ", data!.acceleration.x, ", y: ", data!.acceleration.y, ", z: ", data!.acceleration.z)
}
motionManager.startAccelerometerUpdates(to: OperationQueue(), withHandler: handler)
}
}
错误发生在“let handler”行。
"无法推断通用参数'元素' 调用函数'append'"
我做了一些探索,并认为这是因为编译器不确定数组“arrayOfDicts”是什么类型的......但我可能会走得很远。任何有关该主题的帮助和/或教育将不胜感激。
-马特
【问题讨论】:
-
如果字典总是有相同的 4 个键,你为什么还要使用它们?
标签: swift xcode generics apple-watch