あなたのコードからはわかりませんが、2つのエラーのいずれかが発生していると思います。
MainViewクラスの宣言でswitchToNoGridView
またはgoBack
というメソッドを宣言していません。 Xcodeのオブジェクトがメソッドに応答することを知っているために、あなたはこのように、クラスのヘッダーファイル内の定義を含める必要があります:
@interface MainView : ParentObject {
// instance variables
}
// properties
- (void)switchToNoGridView;
- (void)goBack;
@end
これは、あなたが実際にはもちろん、(void)
としてそれらを宣言したいと仮定し - 彼らができます戻り値を持っていますが、コード内の呼び出しの結果で何もしないので、私はそれらが無効であると仮定しています。または:
あなたはオブジェクトをmainView
ではなく、クラスをMainViewと呼ぶことにしました。 GridView.hのプロパティやインスタンス変数の定義は表示されませんし、MainView.hの現在のメソッド宣言も表示されませんので、MainViewで静的メソッド+(void)switchToNoGridView
と+(void)goBack
が宣言されている可能性がありますMainViewのインスタンスmainView
で呼び出します。たとえば:
@interface AClass : NSObject { }
+ (void)doSomething;
@end
@implementation AClass
+ (void)doSomething {
NSLog(@"Doing something");
}
@end
#import "AClass.h"
@interface AnotherClass : NSObject {
AClass *aClass;
}
@property(nonatomic,retain) AClass *aClass;
- (void)doSomethingElse;
@end
@implementation AnotherClass
- (void)doSomethingElse {
[aClass doSomething]; // This will break at runtime
[AClass doSomething]; // but this won't
}
@end
は基本的に、それはあなたがオブジェクトのメソッドを持つクラスのメソッドを混同してきたことが可能です。どちらの方法でも、MainViewヘッダーファイルで適切なメソッド定義を確認する必要があります。
出典
2009-07-03 10:17:23
Tim
これは私のMAINVIEWです: // MAINVIEW の#import "MainView.h" の#import "GridView.h" の#import「NoGridView。H」 @implementationのMAINVIEW - (ボイド)awakeFromNib { \t [自己addSubview:GridViewの]; \t [自己addSubview:InfoViewの]; } - (ボイド)switchToNoGridView { \t [GridViewのremoveFromSuperview] ; \t [自己addSubview:nogridView];} - (ボイド)GOBACK { \t [nogridView removeFromSuperview]; \t [自己addSubview:GridViewの]; } @end –