无法从objective-c

时间:2017-11-20 11:32:32

标签: objective-c properties swift4

我已经看到了很多关于此的问题和答案,但它们似乎都没有涵盖或解决我的情况。

我有一个最初用Objc编写的项目,现在,一个接一个,我用Swift 4语法替换所有类。

我的问题是,我无法访问Objective C文件中的swift属性。

这是我到目前为止所做的:

我有一个名为MessagesViewController.swift的swift文件,其启动方式如下:

@objc class MessagesViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{

    @objc var mailboxNumber:NSNumber = 0
        ...

然后,有一个objc类“MessagesBoxController”需要访问prepareForSegue方法中的 mailboxNumber

因此,在MessagesBoxController.h中我导入生成的接口头:

#import "myProduct-Swift.h"

并在MessagesBoxController.m中我有这个样板方法:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    MessagesViewController *destViewController = segue.destinationViewController;
    NSIndexPath *selectedIndexPath = [_tv indexPathForSelectedRow];
    destViewController.mailboxNumber =selectedIndexPath.row+1;
}

因此,Swift类“MessagesViewController”被认可很好;没有编译器的任何投诉。虽然它的属性没有暴露:

自动完成不建议 mailboxNumber ,在构建项目时,我收到错误

  

在类型对象上找不到“属性'mailboxNumber'   'MessagesViewController *'“

缺少哪些部分才能使这项工作?

1 个答案:

答案 0 :(得分:1)

行, 所以,基本设置是正确的。 我最终清理了这个项目。然后我收到消息“myProduct-Swift.h”找不到。 然后我退出XCode并删除了派生数据。这有帮助。