【问题标题】:Swift NSNumberFormatter [duplicate]Swift NSNumberFormatter [重复]
【发布时间】:2015-09-19 20:38:00
【问题描述】:

我正在阅读我的速成书并在进行过程中进行构建。我遇到了这个 NSNumberFormatter 类的问题。我不断收到错误: 《预期宣言》 在我的声明之后

formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle

我已经多次重写我的代码,并且我将每个字母都与我的书进行了比较,但我不明白我哪里出错了

当我尝试运行该函数时:

account1.deposit(depositAmount)

我再次收到“预期声明”的错误消息

这是我的代码:

    //: Playground - noun: a place where people can play

    import Cocoa
    import Foundation

    public class Account
    {
    public var name: String = ""
    public var balance: Double = 0.0


    public init(name: String, balance: Double)
    {
        self.name = name
        if balance > 0.0
        {
            self.balance = balance
        }
    }

    public func deposit(amount: Double)
    {
        if amount > 0.0
        {
            balance = balance + amount
        }
    }

    public func withdraw(amount: Double)
    {
        if balance - amount >= 0.0
        {
            balance = balance - amount
        }
    }



   let formatter = NSNumberFormatter()
  formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle


    func formatAccountString(account: Account) -> String {
        return account.name + "'s balance: " + formatter.stringFromNumber(account.balance)!
    }




    let account1 = Account(name: "Jane Green", balance: 50.00)
    let account2 = Account(name: "John Blue", balance: -7.53)

   //println(formatAccountString(account1))

    var depositAmount = 25.53
    account1.deposit(depositAmount)
    account2.deposit(depositAmount)

    println("depositing " + formatter.StringFromNumber(depositAmount) + " into account1\n")
    println("depositing " + formatter.StringFromNumber(depositAmount) + " into account1\n")
    }

提前谢谢你!

【问题讨论】:

    标签: swift function xcode6 nsnumberformatter


    【解决方案1】:

    问题很可能出在formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle 的位置。您不能从类级别运行代码。将其移至 init。

    【讨论】:

    • 是的,就是这样。即使我在操场上也花了很长时间才弄清楚这一点:|
    • 谢谢,我只是将它移到构造函数中,但是在我的 account1.deposit(depositAmount) 语句之后,我仍然收到“预期声明”的相同错误消息。
    • 同样的问题。
    • 是的。当你解决这个问题时,你会遇到 account2 和 prints 的问题。您不能从类/结构体中执行代码。您需要像使用格式化程序一样将其移动到函数中。
    猜你喜欢
    • 2023-03-03
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多