Nếu tôi bỏ ghi chúLàm thế nào để sử dụng dequeueReusableCellWithIdentifier trong Swift?
tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?)
tôi nhận được một lỗi trên dòng
let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath)
nói rằng UITableView? does not have a member named 'dequeueReusableCellWithIdentifier'
Nếu tôi unwrap tableview thì lỗi sẽ biến mất, nhưng trong Objective-C chúng tôi thường sẽ kiểm tra xem tế bào có tồn tại hay không và nếu chúng ta không tạo ra một ô mới. Trong Swift, vì boilerplate được cung cấp sử dụng từ khóa let
và unwraps một tùy chọn, chúng tôi không thể gán lại nó nếu nó là không.
Cách thích hợp để sử dụng dequeueReusableCellWithIdentifier trong Swift là gì?
liên quan đến các tế bào có thể là con số không. không có phương pháp này. Phương pháp này luôn luôn trả về một ô hợp lệ " –
Tôi lẫn lộn vì tôi nhớ những ngày ObjC nơi bạn kiểm tra nil trong trường hợp không có ô để tái sử dụng, và nếu nil tạo một ô có 'reuseIdentifier'. Tôi đọc tài liệu Apple hiện tại một lần nữa và nó nói "Phương pháp này dequeues một tế bào hiện có nếu một là có sẵn hoặc tạo ra một cái mới bằng cách sử dụng lớp hoặc tập tin nib bạn đã đăng ký trước đó." Vì vậy, chức năng hiện cả hai cho chúng tôi bây giờ, đó là tốt đẹp. Xem thảo luận này mặc dù, có 2 cuộc gọi dequeue - một trả về tùy chọn, khác không: [link] (https://www.natashatherobot.com/ios-using-the-wrong-dequeuereusablecellwithidentifier/) –