无法将类型“Array<Hourly>.SubSequence”(又名“ArraySlice<Hourly>”)的值分配给类型“[Hourly]”
Posted
技术标签:
【中文标题】无法将类型“Array<Hourly>.SubSequence”(又名“ArraySlice<Hourly>”)的值分配给类型“[Hourly]”【英文标题】:Cannot assign value of type 'Array<Hourly>.SubSequence' (aka 'ArraySlice<Hourly>') to type '[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<Hourly>
,而不是数组。顺便说一句,你可以简单地得到yourCollection.prefix(24)
你应该小写HourlyData
-> hourlyData
【参考方案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
【讨论】:
以上是关于无法将类型“Array<Hourly>.SubSequence”(又名“ArraySlice<Hourly>”)的值分配给类型“[Hourly]”的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS
C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable
无法将类型“[PHAsset]”的值分配给类型“UIImageView!”