gpt4 book ai didi

swift 3 迁移 : Generic parameter 'Element' could not be inferred

转载 作者:行者123 更新时间:2023-11-28 08:26:18 26 4
gpt4 key购买 nike

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”行。

“无法推断通用参数‘Element’ 在调用函数 'append' 时”

我查了一下,认为这是因为编译器不确定数组“arrayOfDicts”是什么类型……但我可能离题很远。非常感谢有关该主题的任何帮助和/或教育。

-马特

最佳答案

闭包类型 CMAccelerometerHandler 已更改为:

public typealias CMAccelerometerHandler = (CMAccelerometerData?, Error?) -> Swift.Void

(来自“CMMotionManager.h”生成的头文件。)

尝试将该行中的 NSError? 更改为 Error?

您有时可能需要将诸如“无法推断”之类的错误消息视为“可能存在某些与类型相关的错误”。发一个bug report促进 Apple(或 swift.org)改进此类诊断。

关于 swift 3 迁移 : Generic parameter 'Element' could not be inferred,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39884390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com