委托对象不调用协议方法

Tom*_*myG 0 iphone xcode delegates objective-c ios

没有调用协议方法的另一种情况 - 不知道我在这里做错了什么...

这是代码,省略不必要的信息......

第一个头文件:AccessNumber.h

@protocol AddItemDelegate <NSObject>
@required
- (void) processSuccessful: (BOOL)success;
@end

@interface AccessNumber : UIViewController <UITableViewDelegate, UITableViewDataSource, ABPeoplePickerNavigationControllerDelegate, UIAlertViewDelegate> {

id <AddItemDelegate> delegate;

}
@property (retain) id <AddItemDelegate> delegate;
@end
Run Code Online (Sandbox Code Playgroud)

第一.m文件:AccessNumber.m - 我打电话从viewDidLoad中协议方法只是为了测试目的,它应该基本上得到来自另一种方法调用,但对于这个康沃的缘故一样的东西(都尝试当然)

#import "AccessNumber.h"
#import "History.h"

@synthesize delegate;

- (void)viewDidLoad
{
         [super viewDidLoad];

....

     [[self delegate] processSuccessful:YES];
}
Run Code Online (Sandbox Code Playgroud)

第二个文件头:History.h

@interface History : UIViewController <UITableViewDelegate, UITableViewDataSource, AddItemDelegate> {
 ....
    }
Run Code Online (Sandbox Code Playgroud)

历史中的方法实现

- (void) processSuccessful: (BOOL)success {

NSLog(@"SUCCESS");
}
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助.谢谢!

Lui*_*oza 6

在代码中我没有看到类似的东西:

theAccessNumber.delegate = self;
Run Code Online (Sandbox Code Playgroud)

您必须将History实例设置为AccessNumber实例的委托属性.

问候.