首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图解决“对成员‘下标’的模糊引用”错误

试图解决“对成员‘下标’的模糊引用”错误
EN

Stack Overflow用户
提问于 2016-10-31 19:08:33
回答 1查看 467关注 0票数 0

首先,我创建了一些列表:

代码语言:javascript
运行
复制
let day0 = [0] as NSArray
let day1 = [0, 8, 2, 3, 4] as NSArray
let day2 = [0, 1, 2, 3, 4] as NSArray
let day3 = [0, 1, 2, 3, 4] as NSArray
let day4 = [0, 1, 2, 3, 4] as NSArray

let month0 = [0] as NSArray
let january = [day0, day1, day2, day3, day4] as NSArray
let february = [day0, day1, day2, day3, day4] as NSArray
let march = [day0, day1, day2, day3, day4] as NSArray
let april = [day0, day1, day2, day3, day4] as NSArray
let may = [day0, day1, day2, day3, day4] as NSArray
let june = [day0, day1, day2, day3, day4] as NSArray
let july = [day0, day1, day2, day3, day4] as NSArray
let august = [day0, day1, day2, day3, day4] as NSArray
let september = [day0, day1, day2, day3, day4] as NSArray
let october = [day0, day1, day2, day3, day4] as NSArray
let november = [day0, day1, day2, day3, day4] as NSArray
let december = [day0, day1, day2, day3, day4] as NSArray

let calendar = [month0, january, february, march, april, may, june, july, august, september, october, december] as NSArray

然后我尝试返回一个元素:

代码语言:javascript
运行
复制
@IBAction func SetVariablesButton(sender: UIButton)
{
    var result = calendar[1][1][1] as String
    BedTimeLabel.text = String(result)
}

那我就知道错误了。我尝试过各种各样的改变,比如

代码语言:javascript
运行
复制
let day0 = [0] as! NSArray

代码语言:javascript
运行
复制
let day0 = [0] as Array<T>

但这些都没用。我最初根本没有转换vars,但是在研究了常见的问题之后,常见的解决方案是转换vars,这样编译器就可以了解发生了什么。我使用Xcode 8和Swift 2.3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-31 19:32:03

首先,将虚拟月份month0声明为[[0]],以获得与其他月份相同的类型。

然后删除所有强制转换。

代码语言:javascript
运行
复制
let day0 = [0]
let day1 = [0, 8, 2, 3, 4]
let day2 = [0, 1, 2, 3, 4]
let day3 = [0, 1, 2, 3, 4]
let day4 = [0, 1, 2, 3, 4]

let month0 = [[0]]
let january = [day0, day1, day2, day3, day4]
let february = [day0, day1, day2, day3, day4]
let march = [day0, day1, day2, day3, day4]
let april = [day0, day1, day2, day3, day4]
let may = [day0, day1, day2, day3, day4]
let june = [day0, day1, day2, day3, day4]
let july = [day0, day1, day2, day3, day4]
let august = [day0, day1, day2, day3, day4]
let september = [day0, day1, day2, day3, day4]
let october = [day0, day1, day2, day3, day4]
let november = [day0, day1, day2, day3, day4]
let december = [day0, day1, day2, day3, day4]

let calendar = [month0, january, february, march, april, may, june, july, august, september, october, december]

编译器可以推断calendar[[[Int]]]

现在你可以写了

代码语言:javascript
运行
复制
var result = String(calendar[1][1][1])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40348913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档