Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单iOS委托/回调_Ios_Objective C_Callback_Delegates - Fatal编程技术网

简单iOS委托/回调

简单iOS委托/回调,ios,objective-c,callback,delegates,Ios,Objective C,Callback,Delegates,我有一个简单的视图控制器。在我放的.m文件中 #导入“Manager.h” 有一个按钮,单击该按钮时,将执行以下代码: Manager* manager = [[Manager alloc] init]; NSString* str = [manager doit]; NSLog(@"str = %@", str); Manager是NSObject的一个子类。 在Manager.m中,我有以下方法: - (NSString*)doit{ return @"did it"; } 太好

我有一个简单的视图控制器。在我放的.m文件中 #导入“Manager.h”

有一个按钮,单击该按钮时,将执行以下代码:

Manager* manager = [[Manager alloc] init];
NSString* str = [manager doit];
NSLog(@"str = %@", str);
Manager是NSObject的一个子类。 在Manager.m中,我有以下方法:

- (NSString*)doit{
    return @"did it";
}
太好了。所有这些都如预期的那样起作用

我需要的是,如果可能的话,如果是一个良好的实践,发送/让经理理解,方法doit 应调用ViewController中的另一个方法。某种回调/委托。我如何做到这一点

当我打电话时 [经理doit]; 我还想通知您,应该执行ViewController中的一个方法。
我希望你明白我的意思,否则我可以写更多的细节。谢谢

是的,您可以使用委托,管理器对象中委托的实现应该如下所示:

@protocol managerDelegate <NSObject>

-(void)doSomthingAndGetThisString: (NSString *)stringText;

@end

@interface Manager : NSObject
@property (nonatomic,strong) id <managerDelegate>delegate;
@end
视图控制器: ViewController需要保留管理器对象的属性:

@property (nonatomic,strong) Manager *myManager;
现在,当您分配“myObject”时,ViewController应该“签名”以执行委托,如下所示:

  _myManager = [Manager new];
    _myManager.delegate = self;
当然,我们有以下方法:

-(void)doSomthingAndGetThisString:(NSString*)stringText

它将在“Manager”对象启动时调用它


希望这有帮助

在我的情况下不起作用…请检查
  _myManager = [Manager new];
    _myManager.delegate = self;