0
このコードのどこにエラーがあるのかを教えてください。私はメソッドmyMethodToDoStuffを呼びたくありません。それがうまくいく他の方法はありますか?このコードのどこにエラーがありますか?
MyClass.hファイルには、(コメント付きデリゲートの行を追加します!)、次のようになります
#import <BlaClass/BlaClass.h>
@class MyClass; //define class, so protocol can see MyClass
@protocol MyClassDelegate <NSObject> //define delegate protocol
- (void) myClassDelegateMethod: (MyClass *) sender; //define delegate method to be implemented within another class
@end //end protocol
@interface MyClass : NSObject {
}
@property (nonatomic, weak) id <MyClassDelegate> delegate; //define MyClassDelegate as delegate
@end
MyClass.mファイルが別のクラスにデリゲートを使用するには、この
#import "MyClass.h"
@implementation MyClass
@synthesize delegate; //synthesise MyClassDelegate delegate
- (void) myMethodToDoStuff {
[self.delegate myClassDelegateMethod:self]; //this will call the method implemented in your other class
}
@end
のようになります(
#import "MyClass.h"
@interface MyVC:UIViewController <MyClassDelegate> { //make it a delegate for MyClassDelegate
}
MyVC.m:
01のUIViewControllerはMyVC.h)、この場合にMyVCと呼ばれますmyClass.delegate = self; //set its delegate to self somewhere
デリゲートメソッド
- (void) myClassDelegateMethod: (MyClass *) sender {
NSLog(@"Delegates are great!");
}
それは問題はあなたが持っていることは何か本当にはっきりしていません。コードはどこに問題がありますか? –
myMethodToDoStuffこのメソッドはここで呼び出されていません。 –
他のすべての人には、コードは機能していますが、私には分かりません。私はここからコードをコピーしました。 http://stackoverflow.com/a/12660523/7743539 –