-1

我正在阅读 Apple 文档并遇到了这一行:

SKView *spriteView = (SKView *) self.view;

我对 SKView 并不感到困惑,而是对使用的符号感到困惑。我以前从未见过它,也不知道它叫什么或它是如何工作的。通常,如果我想创建一个视图,我会执行以下操作:

UIView *view = [UIView alloc]init];

有人可以解释这两种符号之间的区别或分解第一种符号吗?我在 UIColor 中也经常看到这个。我不知道这叫什么,所以我不确定我必须搜索什么。

4

1 回答 1

1

通常,如果我想创建一个视图...

您要询问的符号self.view, 不会直接创建视图。点表示法是访问对象属性的一种简单方法。它与完全一样[self view]。您示例中的对象self可能是视图控制器,因此具有view通过-(NSView*)view方法访问并通过设置的属性-(void)setView:

现在,视图控制器懒得加载他们的视图——他们不会加载(或创建)他们管理的视图,直到需要它。因此,-(UIView)view访问器看起来像:

-(UIView)view
{
    if (_view == nil) {
        [self loadView];
    }
    return _view;
}

-view因此,创建视图的不是点符号,而是您正在调用该方法的事实。当然,由于view属性被声明为 aUIView*但您的视图控制器管理 的实例SKView,您需要将值转换为SKView*.

于 2013-08-31T01:50:07.710 回答