0

我有一个 swift 项目,我的初始项目UIViewController是一个 swift 类。

从最初的 开始,我在 my 中ViewController添加了一个新的并为其设置了一个Objective-c类 ( )。ViewcontrollerstoryboardFirstViewController.h

在我的项目中,我有另一个swift 类( DataManager.Swift),它是NSObject.

现在我想DataManager.swift在我的Objective-C 类( FirstViewController.m) 中创建它的一个实例。但不幸的是,我无法创建这个实例,给了我一个错误,比如 - Receiver 'DataManager' for class message is a forward declaration

我现在可以做些什么来解决这个问题?项目快速运行时,是否可以从 Objectibe-C 类访问swift 类?

我的FirstViewController.m

#import "FirstViewController.h"
@class DataManager;

@interface FirstViewController ()

@property (nonatomic, strong) DataManager *dataManager;

@end

@implementation FirstViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
   _dataManager = [[DataManager alloc] init]; //This line giving me that error
}
@end

我的DataManager.swift类,

import UIKit;

@objc class DataManager: NSObject {
    var a: Int = 0
}

我的BridgingHeaderFile

#ifndef BridgingHeader_h
#define BridgingHeader_h
#import "FirstViewController.h"
#endif
4

1 回答 1

4


#import "ModuleName-Swift.h"您应该使用以下语法将您的 swift 模块导入您的 .m 文件:ModuleName通常是您的项目名称。
注意:添加-Swift后缀很重要!

导入后也@class DataManager;将是多余的。

于 2019-03-21T07:34:00.170 回答