分配时括号中的类型声明

时间:2014-05-24 19:34:09

标签: objective-c syntax types casting

有时我会看到这样的示例代码:

RootViewController *rootViewController = (RootViewController *)[navigationController topViewController];

其中RootViewController是继承自UITableViewController的特定类,而对象navigationController是类UINavigationController的实例。

我想知道(RootviewController *)之后的=是什么。

在分配给指针*rootViewController之前,这是对类型的测试,还是仅为编译器提供避免警告的信息?

1 个答案:

答案 0 :(得分:1)

这是演员。

我只能说,[navigationController topViewController]获得的对象不属于rootViewController类型,如果没有“转化”,则无法将其分配给rootViewController

就像你这样做:

int32 nbr = (int32)myInt64;