2017-09-28 21 views
0

我有代碼,因此當我單擊「=」以找到使用「和絃方法」的解決方案時「和絃方法」結果顯示在標籤

我該如何使結果顯示在該標籤如何在控制檯 ??

Console

Results

var resultsArray = [AnyObject]() 
var a: Float = 0.0 
var b: Float = 0.0 
var xNext: Float = 0 
var nextFunc: Float = 3 
var funcB: Float = 0 
var iter: Int = 0 
var result = "" 

@IBOutlet weak var aInput: UITextField! 
@IBOutlet weak var bInput: UITextField! 

@IBOutlet weak var resultLabel: UILabel! 
@IBOutlet weak var tableView: UITableView! 
resultsArray.removeAll() 
    iter = 0 
    a = Float(aInput.text!)! 
    b = Float(bInput.text!)! 
    funcB = pow(b, 3)-b-1 
    nextFunc = pow(a, 3)-a-1 
    xNext = a 
    while (-0.001..<0.001).contains(nextFunc) != true{ 
     xNext = xNext - ((b - xNext)/(funcB - nextFunc)) * nextFunc 
     nextFunc = pow(xNext, 3) - xNext - 1 
     iter+=1 
     resultLabel.text = "x\(iter) = \(xNext) \nF(x\(iter)) = \(nextFunc)\n" 
     print ("x\(iter) = \(xNext) \nF(x\(iter)) = \(nextFunc)\n") 
     resultsArray.append(resultLabel as AnyObject) 
    } 
    view.endEditing (true) 

} 

回答

0

由於一個UILabel是引用類型對象,代碼沒有增加新的標籤陣列,它只是反覆添加相同的標籤(和覆蓋它的文本)。

由於我假設您想將結果添加到您的UITableView,您首先需要將resultsArray更改爲[String]()而不是[AnyObject]()

然後你就可以適應

resultLabel.text = "x\(iter) = \(xNext) \nF(x\(iter)) = \(nextFunc)\n" 
    print ("x\(iter) = \(xNext) \nF(x\(iter)) = \(nextFunc)\n") 
    resultsArray.append(resultLabel as AnyObject) 

let result = "x\(iter) = \(xNext) \nF(x\(iter)) = \(nextFunc)\n" 
    resultsArray.append(result) 
    tableView.reloadData() 

現在,最後一步就是讓你tableView符合它的代表,並添加委託方法。爲了簡單起見,它使用默認的iOS TableViewCell,但如果需要,可以將其調整爲您的自定義單元格。

viewDidLoad()

tableView.delegate = self 
tableView.dataSource = self 

地方添加以下代碼並添加以下的代表(記得MyViewController更改爲您的ViewController的名字)

extension MyViewController: UITableViewDataSource, UITableViewDelegate { 
    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return resultsArray.count 
    } 


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let reuseIdentifier = "cellId" 
     let cell = UITableViewCell(style: .default, reuseIdentifier: reuseIdentifier) 
     cell.textLabel?.text = resultsArray[indexPath.row] 
     return cell 
    } 
} 
+0

我只有X(N)顯示在表我需要在控制檯中使用x(n)+ F(x(n)) – VVC

+0

您可以將F(x(n))的結果添加到另一個數組,將TableViewCellStyle更改爲'.subtitle',然後將結果的F(x(n))到'cell.detailTextLabel?.text' –