UIViewController 有 view 这个方法???

2015-03-26 14:47:17 +08:00
 vulgur

看到一段Objective-C代码,百思不得其解,特来请教。

LogInViewController *logInVC = [self.rootViewController.storyboard instantiateViewControllerWithIdentifier:kViewControllerIdLogIn];
[logInVC view];

我奇怪的是view是UIViewController的一个property,并不是method,为什么可以讲它发送给一个UIViewController。而且我也查看了,这个UIViewController并没有实现view的同名getter方法,即使是调用的getter那也并没有赋值给其他变量啊,那么这么写的意义和作用是什么呢?

2817 次点击
所在节点    iOS
5 条回复
chmlai
2015-03-26 14:58:25 +08:00
这样会触发 VC 的- loadView 方法; 如果 VC 的 view 还没加载的话.
txx
2015-03-26 14:59:54 +08:00
因为 UIKit 的大部分属性都是 lazyLoad 的....
lululau
2015-03-26 15:00:45 +08:00
objc属性的实质不就是方法吗
vulgur
2015-03-26 15:47:55 +08:00
@chmlai @txx 谢谢!
在别处的代码中看到了原作者对这句代码的注释:Force load the view
yuankui
2015-03-27 11:25:34 +08:00
属性就是一个getter方法啊...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179500

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX