delegate,顧名思義就是托管床蜘,代理辙培。
比如你要賣房子,你把它掛在中介邢锯,中介幫你發(fā)布在網(wǎng)上扬蕊,有買家買的話,中介就會(huì)通知你丹擎,所以delegate就是那個(gè)萬(wàn)惡的中介厨相。
頭文件VideoRecorderProtocol.h我們可以這么寫:
@protocol VideoRecorderDelegate <NSObject>
//錄制結(jié)束
- (void)finished:(id)session error:(NSError *)err;
@end
實(shí)現(xiàn)代碼VideoRecorderKit.m中可以這么寫:
- (void)finished {
//回調(diào)錄制finished通知給app
if(self.delegate
&& [self.delegate respondsToSelector:@selector(finished:)]){ //用來(lái)判斷是否有以finished命名的方法
NSLog(@"通知應(yīng)用結(jié)束...\n");
[self.delegate finished:self error:nil];
}
}
什么時(shí)候調(diào)用呢? 在關(guān)閉錄制的時(shí)候
- (void)stopRecoder {
......
//停止寫文件 關(guān)閉編碼Target
[self.filter removeTarget:_movieWriter];
self.videoCamera.audioEncodingTarget = nil;
[_movieWriter finishRecording];
//通知應(yīng)用錄制結(jié)束了
[self finished];
}