我正在研究UIPopover
,在其中一个示例中,我发现Popover
对象是
创建,但随后将对象分配给Viewcontroller
的属性。
UIPopoverController* aPopover = [[UIPopoverController alloc] initWithContentViewController:content];
self.popoverController = aPopover;
这种分配的优点是什么?不直接将对象分配给属性的任何原因是什么?
最佳答案
其中没有“功绩”。说
self.popoverController =
[[UIPopoverController alloc] initWithContentViewController:content];
绝对是等效的。
另一方面,如示例所示,使用临时变量(
aPopover
)并没有错。它只是一个名字(一个指针);不会浪费大量的空间或时间。而且,避免重复重复self.popoverController
(设置或获取其值),因为这是一个方法调用-您正在传递setter方法或getter方法(它们可能是合成的,可能会有副作用,并且确实实际上需要一些额外的时间)。因此,例如,当需要完成许多配置时,最好按照您的示例所示进行配置:UIPopoverController* aPopover =
[[UIPopoverController alloc] initWithContentViewController:content];
// lots of configuration here, using the local automatic variable aPopover...
// ...and then, only when it is all done, call the setter:
self.popoverController = aPopover;