iOS Trivia问题

有关应用程序,应用程序代理,窗口和RootViewController的21个简单问题。

FinishLaunchingWithOptions哪个类调用?

UIApplicationMain

哪个类具有window属性?

应用程序委托

哪个类具有rootViewController属性?

UIWindow

该应用的委托属性属于哪一类?

UIApplication

哪个类实例化UIWindow?

UIApplicationMain

哪个类实例化了rootView控制器?

UIApplicationMain类

什么@标记可使应用程序知道该类是应用程序委托?

@UIApplicationMain

您可以在项目中看到UIApplicationMain吗?

是,关于目标C,否是Swift

什么时候可以看到您的应用界面? 必须对窗口实例进行什么方法调用?

MakeKeyandVisible

应用程序如何知道主故事板的名称?

在info.plist文件中。

如何在不使用主故事板的情况下创建应用?

在didFinishLaunchingWith选项中:

  • 实例化一个UIWindow
  • 将其分配给appdelegate.window
  • 实例化视图控制器
  • 分配给window.rootViewController
  • 在窗口上调用makeKeyAndVisible

(请注意,这在如今并不常见)

视图实例化哪个类?

UIView

哪个类可以让视图响应触摸和滑动?

UIResponder

对或错,所有视图和图层都是UIResponders

假。 只有视图是UIResponders

是非题,一个应用程序始终只有一个UIWindow

假。 如果您的应用程序还使用一个外部屏幕,则它可以具有多个UIWindow

一种常见的情况是,如果用户已登录,则跳过登录屏幕。您将如何做?

检查UserDefaults的登录状态。

  • 如果用户尚未登录,请继续执行该应用。
  • 如果用户已登录,请在登录后实例化下一个视图控制器,并将其分配给window.rootviewcontroller。

是否可以继承UIWindow并使用它?

是的,只需将myWindow()分配给应用程序委托中的window属性。

如果您在不是根视图控制器的ViewController中,那么如何获得对窗口的引用?

在每个视图中。 引用“ self.view.window”

如果视图的window属性为nil,对用户有什么影响?

该窗口对用户不可见

您可以从应用程序委托实例获取对窗口的引用吗?

是的,您可以得到:

  • 令w = UIApplication.shared.delegate!.window !!

要么

  • 令w =(UIApplication.shared.delegate as!AppDelegate).window!

您还可以通过UIApplication.shared上未命名为.window的属性来获取对窗口的引用。 该财产的名称是什么?

.sharedWindow

  • 但是,这是一个易失性参考。 该应用程序可以创建临时窗口,并将其插入作为应用程序的关键窗口。