纯粹是偶然的,我发现调用[bar.view addSubview:[foo view]]不起作用,但是[bar.view addSubview:foo.view]在下面的代码中做了.
foo=[fooViewController alloc] initWithNibName:@"fooViewController" andBundle:nil]; [self.view addSubview:foo.view];//here's where I swap the two commands out [foo aFunctionThatSendsAMessageToOneOfFoosSubViews];
(最后一行是因为foo有一些子视图需要在运行之前设置 – 特别是UIWebView.如果在发送消息之前没有实例化它们,那么消息最终会变为零. FOO).
我认为这两个在功能上是相同的 – foo.view调用[foo view]所做的相同的getter,但实际上并非如此;点语法获得所需的结果,而使用括号将消息发送到nil.
如果你十分钟前问过我,我会告诉你两个表达式之间的区别是’语法,而不是别的’.鉴于我显然是错的,我需要了解我是怎么做错的,或者我会再次绊倒它.