2015-06-09 31 views
5

Tôi đang cố tăng nhãn lên 2 khi tôi nhấp vào nút.Làm cách nào để tăng giá trị nhãn bằng nút nhấn trong Swift

import UIKit 

class ViewController: UIViewController { 

    var cur = 0; 

    @IBOutlet weak var money: UILabel! 

    @IBAction func pressbutton(sender: UIButton) { 
     cur = money.text!.toInt()!; 
     self.money.text = String(cur + 2); 

    } 

} 

Đây là mã hiện tại của tôi nhưng tôi nhận được lỗi

toInt() là unavaliable: Sử dụng Int() initializer

trên dòng này

cur = money.text!.toInt()!; 

Trả lời

4

Bạn có thể sửa lỗi này bằng cách thay đổi mã vi phạm như sau:

cur = Int(money.text!)!; 

Đọc thêm về initializers here. Đoạn trích:

Khởi tạo là quá trình chuẩn bị một thể hiện của một lớp, cấu trúc hoặc điều tra để sử dụng. Quá trình này liên quan đến việc đặt giá trị ban đầu cho mỗi thuộc tính được lưu trữ trên cá thể đó và thực hiện bất kỳ thiết lập hoặc khởi tạo nào khác được yêu cầu trước khi phiên bản mới sẵn sàng để sử dụng.

9

Bạn không nên sử dụng nội dung của nhãn để tăng nhãn theo chương trình MVC. Thay vào đó, sử dụng một biến để lưu trữ Int của bạn và cập nhật các nhãn bằng cách thêm một người quan sát tài sản để biến như vậy:

class ViewController: UIViewController { 

    @IBOutlet weak var someLabel: UILabel! 

    var someValue: Int = 0 { 
     didSet { 
      someLabel.text = "\(someValue)" 
     } 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     someValue = 0 // didSet is called when the variable is changed, not upon initialization. 
    } 

    @IBAction func buttonPressed(sender: UIButton) { 
     someValue += 2 
    } 
} 

Ngoài ra, tôi sẽ xem xét đổi tên biến của bạn để một cái gì đó nhiều hơn mô tả hơn cur, và bạn có thể bỏ qua các dấu chấm phẩy vì chúng không cần thiết.

+4

Đây là lời khuyên hữu ích, +1. –

-3
money.text = "\(Int(money.text!)! + 2)" 
Các vấn đề liên quan