无法转换类型' [RKDataStreamingMask]'的值预期的参数类型' RKDataStreamingMask'

时间:2016-03-08 13:52:32

标签: xcode swift

Xcode 7和我的代码:

func sendSetDataStreamingCommand {
let mask = RKDataStreamingMask.AccelerometerFilteredAll |
RKDataStreamingMask.IMUAnglesFilteredAll |
RKDataStreamingMask.QuaternionAll ;
self.robot.enableSensors(mask,atStreamingRate:RKStreamingRate.DataStreamingRate10);
}

警告是:

swift Binary operator '|' cannot be applied to two UIViewAutoresizing operands

然后更改代码:

func sendSetDataStreamingCommand {
let mask=[RKDataStreamingMask.AccelerometerFilteredAll,
RKDataStreamingMask.IMUAnglesFilteredAll,
RKDataStreamingMask.QuaternionAll]
self.robot.enableSensors(mask,atStreamingRate:RKStreamingRate.DataStreamingRate10);
}

然后在最后一句中发出警告:

Cannot convert value of type '[RKDataStreamingMask]' to expected argument type 'RKDataStreamingMask'

请教我怎么做?谢谢。

1 个答案:

答案 0 :(得分:1)

要声明包含多个OptionSetType成员的变量,您必须明确注释该类型,否则方括号将被视为数组。

let mask : RKDataStreamingMask = [.AccelerometerFilteredAll, .IMUAnglesFilteredAll, .QuaternionAll]