不导入头文件,一样可以使用特定类创建对象?

建立一个table view,用plist记录控制器的类,点击一个cell,跳转到特定类型的控制器。发现了一个很奇怪的问题:即使不导入目标控制器的头文件,一样可以顺利跳转。

下面时代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 获取cell字典
    NSArray *cellArray = self.dataArray[indexPath.section][@"cells"];
    NSDictionary *cellDict = cellArray[indexPath.row];
    
    if (cellDict[@"targetViewController"]) {
        
        // 获取控制器类名
        NSString *className = cellDict[@"targetViewController"];
        // 控制器类对象
        Class targetViewControllerClass = NSClassFromString(className);
        // 创建控制器
        id targetViewController = [[targetViewControllerClass alloc] init];
        
        [self.navigationController pushViewController:targetViewController animated:YES];

    } else {
        return;
    }
}

只是单纯创建了目标控制器的.h和.m文件,没有在任何地方引用,请问系统是如何顺利找到并创建对象的?

阅读 3.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题