2017-11-20 14 views
0

私は多くの質問と回答を見てきましたが、私の状況をカバーしたり解決したりしていないようです。目的-cからswift 4クラスのプロパティにアクセスできない

私は元々Objcで書かれたプロジェクトを持っていますが、今では1つ1つ、すべてのクラスをSwift 4の構文に置き換えています。

私の問題は、Objective Cファイルの迅速なプロパティにアクセスできないということです。

これは私がこれまで持っているものです。

私は次のように起動しMessagesViewController.swiftと呼ばれるこの1つのSWIFTファイル、持っている:にObjCクラス「MessagesBoxController」がある中で、次に

@objc class MessagesViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{ 

    @objc var mailboxNumber:NSNumber = 0 
     ... 

をすなわちprepareForSegue方法でmailboxNumberにアクセスする必要がある:

したがって、MessagesBoxController.h Iにおいて生成されたインタフェースヘッダをインポート:

#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; 
} 

ので、スウィフトクラス "MessagesViewControllerは" 細かい認識されています。コンパイラによる何の苦情もありません。公開されていないものの、そのプロパティ:

自動補完はmailboxNumberを示唆していないと、プロジェクトをビルドすると、I「はエラー

は「プロパティ 『mailboxNumber』タイプ のオブジェクトに見つからないMessagesViewControllerを取得* '"

この作品をお探しですか?

答えて

1

OK、 したがって、基本設定は正しいです。 私はプロジェクトを終了した。私は "myProduct-Swift.h"というメッセージが見つかりませんでした。 その後、XCodeを終了し、派生データを削除しました。それが助けになりました。

+0

SwiftからObjective-CにInt&Boolにアクセスする際に問題に直面しています。このエラーが発生します:* Objective-C *で任意のsuggetionを表すことができないためプロパティに@objcを付けることはできませんか?私は同じヘッダ "MyProject-Swift.h"を使用しています。 –

関連する問題