在NewTaskViewController.h中,委托被声明为id类型的属性。 下面的类型转换是否使委托指向ViewController类型的对象?
#import "NewTaskViewController.h"
#import "ViewController.h"
@implementation NewTaskViewController
- (IBAction)saveTask:(id)sender {
if ([self.textField.text length] == 0)
return;
ViewController *tasksListView = (ViewController *)self.delegate;
[tasksListView.tasks addObject:self.textField.text];
[self close:sender];
}
- (IBAction)close:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
答案 0 :(得分:2)
演员告诉编译器你想要使用delegate
对象,好像它是ViewController
。如果真的是一个,你就可以了。如果不是,那么在运行时会发生不好的事情。也就是说,演员不进行任何转换。