Obj-C头文件无法识别Swift类

时间:2016-09-08 04:34:07

标签: ios objective-c swift delegates protocols

我在Swift文件中定义了一个Obj-C头文件无法识别的协议。

MainViewController.h

#import "AppDelegate.h"

@interface MainViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, AnotherViewControllerDelegate>
@end

在上面的文件中,我收到以下错误:

  

无法找到协议声明   “AnotherViewControllerDelegate”;你的意思是   “UIPageViewControllerDelegate”?

MainViewController.m

#import "MainViewController.h"
#import "AppDelegate.h"

@implementation MainViewController

-void closeView{
     NSLog(@"Why doesn't this work?");
}

@end

AppDelegate.h

#import "MyProject-Swift-Headers.h"

AnotherViewController.swift

@objc protocol AnotherViewControllerDelegate {
    func closeView()
}

@objc class AnotherViewController: UIViewController{

     var delegate: AnotherViewControllerDelegate!

     @IBAction func closeButton(sender: UIButton) {
          delegate.closeView()
     }
}

奇怪的是,在MainViewController.h中,当我开始输入“AnotherViewControllerDelegate”时,Xcode将自动完成。此外,“构建设置”下的“定义模块” - &gt;包装一直设为“是”;我已经将Swift和Obj-C方法混合到了这个项目的代码库的其他部分......似乎无法让这个协议工作。

0 个答案:

没有答案