Ios 目标c“;UIImageView*imageView=(UIImageView*)self.view&引用;惯例

Ios 目标c“;UIImageView*imageView=(UIImageView*)self.view&引用;惯例,ios,objective-c,Ios,Objective C,我在关于IOS的书中遇到了objective-c行,它有一种我以前从未见过的格式。如果有人能告诉我这句台词的意思,以及我应该知道的关于大会的任何其他事情,那就太好了 这是这条线的方法: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; //we must cast the view to UIImageView so the compiler knows is is okay //

我在关于IOS的书中遇到了objective-c行,它有一种我以前从未见过的格式。如果有人能告诉我这句台词的意思,以及我应该知道的关于大会的任何其他事情,那就太好了

这是这条线的方法:

- (void)viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];

   //we must cast the view to UIImageView so the compiler knows is is okay
   //to send it setImage

   UIImageView *imageView = (UIImageView *) self.view; //<----the line I'm concerned with
   imageView.image = self.image;
}

线路

这是从一种类型到另一种类型的简单转换。移除右侧的(UIImageView*),您将看到一条警告:“使用UIView*类型的表达式初始化UIImageView时指针类型不兼容”。之所以会出现这种情况,是因为self.view是UIView,而UIImageView是UIView的子类,而不是UIView。编译器将简单地警告您它们是不同的类型,并通过强制转换告诉编译器将self.view视为UIImageView。就像当你的朋友来到你家门口时,你吵闹的狗吠叫,你说“冷静点,贝西,他是个好人,你现在可以躺下了。”

你不明白那句话的哪一部分?具体点。在你的代码中,就在你所关心的那一行的正上方,有一条注释解释了这一行的作用:它声明
self.view
是一个
UIImageView
对象
UIImageView *imageView = (UIImageView *) self.view;