0

なんらかの理由でここでエラーが発生します

#import "OtherViewController.h"

@interface ViewController: UIViewController



@property (nonatomic, strong) OtherViewController *otherViewController;

これにより、「不明なタイプ名OtherViewController」というエラーが表示されます。なぜこれが発生するのですか?これは、他のViewControllerにメッセージを送信する方法ではありませんか。もしそうなら、あなたはこれを行うことになっている方法は何ですか?

4

3 に答える 3

1

.m ファイルにヘッダーをインポートしてみてください

#import "OtherViewController.h"

ヘッダー .h ファイルに追加します

@class OtherViewController;
于 2012-11-13T08:43:28.000 に答える
1

あなたが投稿したものから、あなたが投稿したものに何の問題もありません。そうは言っても、他の VC のプロパティを宣言する必要はありません。あなたがする必要があるのは、OtherViewController (NSString のような) でパブリック プロパティを宣言することです。そうすれば、ViewController クラスからそのプロパティにアクセスできます。次のようなもの (ストーリーボードを使用していると仮定):

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
     if ([segue.identifier isEqualToString:@"MySegueID"]) {
         OtherViewController *ovc = segue.destinationViewController;
         ovc.myPublicNSStringProperty = @"Something";
     }
}
于 2012-11-13T02:53:51.790 に答える
0

十分な情報が提供されていないため、確かなことはわかりませんが、循環インポートがある場合、同様のエラーが発生しました。つまり、OtherViewController.h に #import ViewController が含まれている場合です。

したがって、循環参照を回避するために、そのうちの 1 つで @class を使用してみることができます。

@class OtherViewController;

ViewController.m に必ず以下を含めてください。

#import "OtherViewController.h"
于 2012-11-13T03:47:32.357 に答える