2017-03-28 33 views
1

我有一個按鈕,將1加到嘗試分數標籤上,然後再將1或0加到正確的分數標籤上,這取決於按下哪個按鈕。這些數據然後被傳遞給各種viewControllers。在最後一個viewController我想將標籤中的字符串轉換爲一個int,然後做一個簡單的計算,以獲得一個百分比。我試過的代碼如下。百分比沒有被顯示,所以我不認爲我正確地轉換它?將字符串從標籤轉換爲實際

在以前的VC的華擎和cScore被設定爲= 0。例如可變..

var aScore = 0 
var cScore = 0 

我傳遞VC以下代碼出口之間,然後在最終的viewController的數據。

import UIKit 

class gViewController: UIViewController { 


@IBOutlet weak var correctScore: UILabel! 
@IBOutlet weak var attemptScore: UILabel! 
@IBOutlet weak var percentage: UILabel! 

var aScore: Int! 
var cScore: Int! 
var percentage1: Int! 


override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 

    correctScore.text = NSString(format: "%i", cScore) as String 
    attemptScore.text = NSString(format: "%i", aScore) as String 

    let c:Int? = Int(correctScore.text!) 
    let a:Int? = Int(attemptScore.text!) 

    percentage1 = c!/a! 

    percentage.text = NSString(format: "%i", percentage1) as String 
} 

suggested code

+0

你可以做'percentage1'前的''了'和'C'價值print'?然後'打印'百分比'值和'百分比'值?你需要確保你的變量首先具有價值。 –

+0

爲什麼你首先將'Int'轉換爲'NSString',然後'NSString'轉換爲'Int'?爲什麼你不只是'cScore/aScore' – JuicyFruit

+0

在最後一個viewControllers之前我已經使用代碼將cScore和aScore設置爲0:Var aScore = 0我已經編輯了上面的帖子。因此,爲什麼我試圖將它們轉換爲int –

回答

0

試試這個

override func viewDidLoad() { 
    super.viewDidLoad() 

    // Do any additional setup after loading the view. 

    self.correctScore.text = String(format: "%.1f", cScore) 
    self.attemptScore.text = String(format: "%.1f", aScore) 

    var percentage1 = Float(cScore)/Float(aScore) 

    self.percentage.text = String(format: "%.1f", percentage1) 

}

+0

在以前的viewControllers上存在以下代碼: var aScore = 0 var cScore = 0。 因此,當我得到你所提供的代碼的百分比不起作用。我已經編輯了原始帖子,並附有發生了什麼的圖片。 –

+0

您確實有一個int類型的變量aScrote和cScore。對於劃分,確保他們被解釋爲浮動或雙重劃分它們。 – Lepidopteron

+0

@KeironMorris先前的viewController是什麼意思?你是否將數據從一個VC傳遞給另一個VC? –

相關問題