动态强制转换为目标C中的自定义类

时间:2013-12-11 13:45:21

标签: ios objective-c

在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

1 个答案:

答案 0 :(得分:2)

演员告诉编译器你想要使用delegate对象,好像它是ViewController。如果真的是一个,你就可以了。如果不是,那么在运行时会发生不好的事情。也就是说,演员不进行任何转换。