【问题标题】:Cannot assign value of type 'Array<Hourly>.SubSequence' (aka 'ArraySlice<Hourly>') to type '[Hourly]'无法将类型“Array<Hourly>.SubSequence”(又名“ArraySlice<Hourly>”)的值分配给类型“[Hourly]”
【发布时间】:2021-04-04 04:56:40
【问题描述】:

我有这样的 API 响应:

这里每小时列表有 48 项。所以我想在从 JSON 解码这个响应后对这个数组进行切片:

if !self.HourlyData.isEmpty {
            self.HourlyData = self.HourlyData[0...23]
}

但这会产生错误:

Cannot assign value of type 'Array<Hourly>.SubSequence' (aka 'ArraySlice<Hourly>') to type '[Hourly]'

然后试试这个:

if !self.HourlyData.isEmpty {
            self.HourlyData = self.HourlyData.index(before: 24)
}

仍然出现此错误:

Cannot assign value of type 'Int' to type '[Hourly]'

那么,我如何从这个 hourly 列表中分割前 24 个项目。

【问题讨论】:

  • 将变量类型声明更改为ArraySlice&lt;Hourly&gt;,而不是数组。顺便说一句,你可以简单地得到yourCollection.prefix(24)
  • 你应该小写HourlyData -> hourlyData

标签: ios arrays swift


【解决方案1】:

像这样:

self.HourlyData = Array(self.HourlyData[0...23])

【讨论】:

    【解决方案2】:

    请注意约定,将变量的首字母大写是不好的做法。

    self.hourly = Array(self.hourly.prefix(24))
    

    https://developer.apple.com/documentation/swift/array/1689487-prefix

    【讨论】:

      猜你喜欢
      • 2015-07-10
      • 2022-12-26
      • 2018-09-22
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多