2014-09-27 11 views
19

Tôi mới ở Swift và tôi đang thực hiện một máy tính đơn giản, nơi tôi không thể phát hiện một nút đã được nhấn và mã của tôi ở bên dưới.Cách lấy tên nhãn từ Nút?

@IBAction func ButtonTapped(TheButton : UIButton){ 

    println(TheButton.titleLabel.text) 
} 

nhưng nó cho thấy tôi lỗi như "UILabel? Does not have a member a named text"

và nó cho tôi biết để sửa đổi mã như thế này

println(TheButton.titleLabel?.text) 

này In Optional("1") (1 là tên nút của tôi)

Vì vậy, bất cứ ai có thể giúp tôi lý do tại sao điều này là vui với tôi và làm thế nào tôi có thể in tên nút mà không cần tùy chọn?

+1

tên Chức năng và tên biến nên bắt đầu với một chữ cái thường. Đó là một quy ước làm tăng khả năng đọc. – Abizern

+0

Cảm ơn bạn! Nó đã giúp tôi. – Raja

Trả lời

32

Nếu bạn chắc chắn rằng titleLabel không phải là nil:

println(TheButton.titleLabel!.text) 

khác

if let text = TheButton.titleLabel?.text { 
    println(text) 
} 
13

Nhiều cách đơn giản, bạn chỉ có thể làm:

let titleValueString = TheButton.currentTitle! 

Nếu tiêu đề của nút không phải là không, dấu chấm than (!) sẽ ẩn hoàn toàn tional (currentTitle không có dấu chấm than) và bạn sẽ có giá trị chuỗi cho tiêu đề của nút trong hằng số, titleValueString

2

Câu trả lời hàng đầu không còn hoạt động nữa. Dưới đây là phiên bản điều chỉnh cho Swift 2.2:

Nếu bạn chắc chắn rằng titleLabel không phải là con số không:

print(TheButton.titleLabel!.text!) 

Nếu bạn không phải là:

if let text = TheButton.titleLabel?.text { 
    print(text) 
} 
Các vấn đề liên quan