首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数对象数组中的错误

计数对象数组中的错误
EN

Stack Overflow用户
提问于 2018-07-26 06:09:18
回答 2查看 54关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
var activeCalculators = Calculators()

func numberOfCalculators()->Int{
        let activeCalculatorsArray = activeCalculators.calculators
        return activeCalculatorsArray!.count
    }


struct Calculators
{
    var calculators: [Calculator]?
    var activeCalculator: Int = -1
    var activeSummary: Bool = false
    var activeProfits: Bool = false

    public func getCalculators()-> [Calculator]
    {
        return calculators!
    }

    public mutating func setCalculators(calculators: [Calculator])
    {
        self.calculators = calculators
    }

    public func  getActiveCalculatorIndex()-> Int
    {
        return activeCalculator
    }

    public mutating func  setActiveCalculatorIndex( activeCalculator: Int)
    {
        self.activeCalculator = activeCalculator
    }

    public func  isActiveProfits()-> Bool
    {
        return activeProfits
    }

    public mutating func  setActiveProfits( activeProfits: Bool)
    {
        self.activeProfits = activeProfits
    }



    public func  isActiveSummary()-> Bool
    {
        return activeSummary
    }

    public mutating func setActiveSummary(activeSummary: Bool)
    {
        self.activeSummary = activeSummary
    }
}

override func viewDidLoad() {
print("XXXXXXXXXXXX: \(numberOfCalculators())")

}

当我运行我的函数: numberOfCalculators()时,我有错误:线程1:致命错误:意外地找到零,同时打开一个可选的值

我正试着把这个功能添加到我的课堂上:

代码语言:javascript
复制
public func countCalculators()->Int{
        return (calculators?.count)!
    }

但是他们我错了:

线程1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP,subcode=0x0)

你怎么能修好它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-26 06:14:08

首先,正确地展开它:

代码语言:javascript
复制
func numberOfCalculators()->Int{
    return activeCalculatorsArray?.count ?? 0
}

public func countCalculators()->Int {
    return calculators?.count ?? 0 // Suggested by Alexander
}

然后你需要set something before calling get。因此,在viewDidLoad中,不必先调用numberOfCalculators(),而是调用setCalculators(),这样计算器就有了一定的价值。

票数 1
EN

Stack Overflow用户

发布于 2018-07-26 06:17:03

根据您提供的信息,在您阅读时,calculators似乎是零。您可能需要在您的getCalculators方法中进行一些检查.

代码语言:javascript
复制
guard let calcs = self.calculators else {
    print("No calculcators!")
    return [] // returns empty (no crash)
}

return calcs // return values

同时,最好能调查一下为什么你一开始就没有计算器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51532042

复制
相关文章

相似问题

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