• <bdo id='iZdbT'></bdo><ul id='iZdbT'></ul>

      <i id='iZdbT'><tr id='iZdbT'><dt id='iZdbT'><q id='iZdbT'><span id='iZdbT'><b id='iZdbT'><form id='iZdbT'><ins id='iZdbT'></ins><ul id='iZdbT'></ul><sub id='iZdbT'></sub></form><legend id='iZdbT'></legend><bdo id='iZdbT'><pre id='iZdbT'><center id='iZdbT'></center></pre></bdo></b><th id='iZdbT'></th></span></q></dt></tr></i><div id='iZdbT'><tfoot id='iZdbT'></tfoot><dl id='iZdbT'><fieldset id='iZdbT'></fieldset></dl></div>
      <tfoot id='iZdbT'></tfoot>

      <small id='iZdbT'></small><noframes id='iZdbT'>

      1. <legend id='iZdbT'><style id='iZdbT'><dir id='iZdbT'><q id='iZdbT'></q></dir></style></legend>
      2. Swift 中的自定义 UITableViewCell 委托模式

        时间:2023-09-12
          <tbody id='sWdm3'></tbody>

              <legend id='sWdm3'><style id='sWdm3'><dir id='sWdm3'><q id='sWdm3'></q></dir></style></legend>
                  <bdo id='sWdm3'></bdo><ul id='sWdm3'></ul>
                  <i id='sWdm3'><tr id='sWdm3'><dt id='sWdm3'><q id='sWdm3'><span id='sWdm3'><b id='sWdm3'><form id='sWdm3'><ins id='sWdm3'></ins><ul id='sWdm3'></ul><sub id='sWdm3'></sub></form><legend id='sWdm3'></legend><bdo id='sWdm3'><pre id='sWdm3'><center id='sWdm3'></center></pre></bdo></b><th id='sWdm3'></th></span></q></dt></tr></i><div id='sWdm3'><tfoot id='sWdm3'></tfoot><dl id='sWdm3'><fieldset id='sWdm3'></fieldset></dl></div>

                  <tfoot id='sWdm3'></tfoot>

                  <small id='sWdm3'></small><noframes id='sWdm3'>

                  本文介绍了Swift 中的自定义 UITableViewCell 委托模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我在 Swift + Objective-C 问题中遇到了一个奇怪的问题.

                  I have a weird problem in a Swift + Objective-C problem.

                  我正在快速实现一个 UITableView 和一个带有委托的自定义单元格,但是一旦我的 UITableViewController 将我的单元格委托分配给自己,它就会使我的应用程序和 Xcode 崩溃.是的,每次我的应用程序崩溃时,Xcode 也会崩溃,无论如何,但这是另一个问题.

                  I'm implementing a UITableView and a custom cell with a delegate in swift, but as soon as my UITableViewController assign my cell delegate to self, it crash both my app and Xcode. Yeah each time I crash my app, Xcode crash too, no matter what, but this is another problem.

                  这是我牢房的一部分

                  enum NewsCellActionType: Int {  
                      case Vote = 0
                      case Comments
                      case Time
                  }
                  
                  protocol NewsCellDelegate {
                      func newsCellDidSelectButton(cell: NewsCell, actionType: NewsCellActionType)
                  }
                  
                  class NewsCell: UITableViewCell {
                  
                  
                  
                      var cellDelegate: NewsCellDelegate?
                  
                   func selectedAction(action: NewsCellActionType) {
                          self.cellDelegate?.newsCellDidSelectButton(self, actionType: action)
                      }
                  }
                  

                  这是我在 UIViewController 中设置委托的地方

                  And here is where I set the delegate in my UIViewController

                   override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
                          var cell = tableView.dequeueReusableCellWithIdentifier(NewsCellsId) as NewsCell
                          if cell == nil {
                              cell = NewsCell(style: UITableViewCellStyle.Default, reuseIdentifier: NewsCellsId)
                          }
                          cell.post = self.posts[indexPath.row] as HNPost
                          cell.cellDelegate = self
                          return cell
                  
                      }
                  

                  它在 cell.cellDelegate = self 行崩溃,我不知道为什么.是当前 DP 的 bug,还是我做错了?

                  It crash at the line cell.cellDelegate = self, I have no idea why. Is it a bug in the current DP, or am I doing it wrong?

                  我尝试在我的委托 var + 协议上的 @objc 标记上使用弱,但由于我使用的是纯 Swift 枚举,所以我不能这样做.但我需要它吗?

                  I tried to use weak on my delegate var + the @objc tag on the protocol, but as I use a pure Swift enum I can't do that. But do I need it?

                  谢谢!

                  推荐答案

                  我在这里发布了答案.

                  目前,如果委托应该是 Objective-C 类的对象(如 UITableViewController),则必须使用 @objc 显式标记您的协议:

                  Currently you have to explicitly mark your protocols with @objc if the delegate should be an Object of a Objective-C class (Like the UITableViewController):

                  @objc protocol SwiftProtocol
                  

                  这将使与 Objective-C 的互操作成为可能

                  This will enable interoperating with Objective-C

                  这篇关于Swift 中的自定义 UITableViewCell 委托模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何在 NSStream 中使用委托? 下一篇:SKProductsRequest 委托方法永远不会被调用

                  相关文章

                  <small id='URkvB'></small><noframes id='URkvB'>

                • <i id='URkvB'><tr id='URkvB'><dt id='URkvB'><q id='URkvB'><span id='URkvB'><b id='URkvB'><form id='URkvB'><ins id='URkvB'></ins><ul id='URkvB'></ul><sub id='URkvB'></sub></form><legend id='URkvB'></legend><bdo id='URkvB'><pre id='URkvB'><center id='URkvB'></center></pre></bdo></b><th id='URkvB'></th></span></q></dt></tr></i><div id='URkvB'><tfoot id='URkvB'></tfoot><dl id='URkvB'><fieldset id='URkvB'></fieldset></dl></div>
                  • <bdo id='URkvB'></bdo><ul id='URkvB'></ul>

                    1. <legend id='URkvB'><style id='URkvB'><dir id='URkvB'><q id='URkvB'></q></dir></style></legend>
                    2. <tfoot id='URkvB'></tfoot>