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

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

      在 Objective-C 中使用 Swift 协议

      时间:2023-07-28

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

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

              1. 本文介绍了在 Objective-C 中使用 Swift 协议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我正在将我的项目从 Objective-c 转换为 Swift,我正在使用一个 Swift 类,我有一个 protocol 我正在尝试在一个 Objective-c 类中访问.我的问题是,在objective-c 类中无法访问delegate.这是我的快速课程:

                I'm working on converting my project from Objective-c to Swift, and a Swift class I'm using, I have a protocol I'm trying to access in an Objective-c class. My problem is, the delegate is not accessible in the objective-c class. Here is my swift class:

                protocol RateButtonDelegate {
                    func rateButtonPressed(rating: Int)
                }
                
                class RateButtonView: UIView {
                
                
                    var delegate: RateButtonDelegate?
                
                    var divider1: UIView!
                    var divider2: UIView!
                }
                

                当我查看 MyProject-Swift.h 文件时,我没有看到 delegate:

                When I look at the MyProject-Swift.h file, I don't see the delegate:

                @interface RateButtonViewTest : UIView
                @property (nonatomic) UIView * divider1;
                @property (nonatomic) UIView * divider2;
                @end
                

                当我尝试在我的 Objective-c 类中使用 rateButtonView.delegate 时,出现编译器错误.

                and when I try to use rateButtonView.delegate in my Objective-c class, I get a compiler error.

                有人知道这个问题吗?如何在 Objective-c 中访问 Swift 协议?

                Anyone know the issue? How do access a Swift protocol in Objective-c?

                推荐答案

                您需要使用 @objc 属性标记您的协议,以便它可以从 Objective-C 访问:

                You need to mark your protocol with the @objc attribute for it to be accessible from Objective-C:

                @objc protocol RateButtonDelegate {
                    func rateButtonPressed(rating: Int)
                }
                

                Apple 文档中的此页面 涵盖了该问题.

                这篇关于在 Objective-C 中使用 Swift 协议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:对Objective-C中的委托有点困惑 下一篇:处理应用程序委托和在视图之间切换

                相关文章

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

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