Tôi vừa tìm thấy 5 báo cáo sự cố bên trong trình tổ chức xcode. Khi tôi mở chúng tôi nhận được stacktrace này (khu vực đánh dấu là tên của ứng dụng của tôi):Swift sở hữu để bảo đảm
Lỗi này xảy ra trên iOS8.4 cũng như trên iOS9, và trên iPhone 5 và iPhone 6 thiết bị tương tự như vậy .
Thật khó để tôi theo dõi vì tôi không thể sao chép nó trên iPhone5 (8.4) hoặc trên iPhone6 (9.0.1).
1./2. đâu đó ở đây:
override func onButtonTableViewCellClick(button: BfPaperButton) {}
3.
var button: BfPaperButton = BfPaperButton.newAutoLayoutView()
func onClick() {
delegate?.onButtonTableViewCellClick(button) // 3
}
tôi sử dụng nhanh chóng 2, xcode 7 và iOS9. Giúp tôi hiểu lỗi. Dòng đầu tiên với hình ảnh màu đỏ có nghĩa là gì? Tại sao có lỗi này liên quan đến Swift.String
?
tôi thấy chủ đề này: https://forums.developer.apple.com/thread/6078 nơi tôi được chiết xuất thông tin này:
Một trường hợp tôi đã nhìn thấy loại này của vụ tai nạn là khi một đối tượng obj-C dựa trên gọi một phương pháp đại biểu đó là Swift- dựa trên và giá trị tham số là nhưng chữ ký phương thức Swift không phải là loại tùy chọn. Trong trường hợp tôi đã thấy, đó là lỗi trong chữ ký của phương thức ủy nhiệm bắc cầu - nó thực sự được cho là tùy chọn. Nó có thể là một cái gì đó tương tự trong trường hợp của bạn (định nghĩa Swift không cho phép một tùy chọn khi cần), hoặc nó có thể là một lỗi trong mã Obj-C (sản xuất nil khi nó không nên).
Tôi sử dụng obj-c lib được gọi là BfPaperButton tạo nút có dạng trong thiết kế material design android. Có thể lỗi liên quan đến thư viện này?
Log:
Xem hình: http://i.stack.imgur.com/5aQ8m.png
Tôi có hai phần mở rộng chuỗi. Một cho chiều dài và một cho chuỗi:
extension String {
var length: Int { return self.characters.count }
subscript (i: Int) -> String {
return String(Array(self.characters)[i])
}
subscript (r: Range<Int>) -> String {
let start = startIndex.advancedBy(r.startIndex)
let end = startIndex.advancedBy(r.endIndex)
return substringWithRange(Range(start: start, end: end))
}
}
Đường dây 188 là:
NSUUID().UUIDString[0...4]
trong đó sử dụng phần mở rộng chuỗi. Có lẽ lỗi ở đây?
override func onButtonTableViewCellClick(button: UIButton) {
if let title = button.titleLabel?.text {
if title == "Send code" {
tmpPhoneNumber = ""
var tmp = phoneNumber
if tmp.length > 1 {
if tmp[0] == "0" {
tmp = tmp[1...tmp.characters.count - 1]
}
tmpPhoneNumber = "0049" + tmp
phoneNumberWithCode = tmpPhoneNumber
sendAlert(tmp)
} else {
PfToast.showError("Please enter your phone number.")
}
} else if title == "Finish" {
if let cell: InputTableViewCell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 2)) as? InputTableViewCell {
if isLicenceValid(cell.inputField.inputField.text!) {
createCustomer(cell.inputField.inputField.text!)
} else {
PfToast.showError("Please enter correct licence plate.")
}
}
}
}
}
Thông báo lỗi thực tế là gì bên trong trình xem nhật ký? –
@ l'L'l Ý bạn là gì? Tôi có chế độ xem tổ chức (xem câu hỏi đã cập nhật của tôi) và khi tôi nhấp vào "Mở trong dự án", tôi có giao diện nhật ký như trong hình đầu tiên. –
Bạn có thể đăng toàn bộ văn bản của 'thread 0, # 1' (xóa thông tin cá nhân là tốt, nó chỉ là phần còn lại của dòng là trucated - có thể bao gồm dòng trong đó lỗi xảy ra). –