Objective c 在溅屏期间发出警告

Objective c 在溅屏期间发出警告,objective-c,ios,xcode,Objective C,Ios,Xcode,这是一个由两部分组成的问题 我已经创建了一个用户协议,用户在首次启动应用程序时必须同意该协议(它是一个带有一些信息的警报,并带有“同意/不同意”按钮) 我调用了在myAppDelegate.m内和方法内创建此警报的方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 问题是当启动屏幕完成加载并且出现我的第一个视图时

这是一个由两部分组成的问题

  • 我已经创建了一个用户协议,用户在首次启动应用程序时必须同意该协议(它是一个带有一些信息的警报,并带有“同意/不同意”按钮)
  • 我调用了在myAppDelegate.m内和方法内创建此警报的方法

       - (BOOL)application:(UIApplication *)application 
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    
    问题是当启动屏幕完成加载并且出现我的第一个视图时,会弹出警报。我希望这发生在启动屏幕期间。我该怎么做

    第二个问题是,当用户按下“不同意”按钮时,我希望他们退出应用程序,这样我就可以用

                          exit(0);
    
    有没有更好的方法,苹果会因此拒绝我的应用程序


    提前感谢

    为什么不加载我们的default.png作为初始视图的背景,并在其控制器中处理警报。您始终可以根据答案添加另一个视图或序列

    问题是UIAlert会阻止主线程,因此它可能会阻止你的应用程序及时启动,并且进程可能会终止。

    1)你不能——在启动屏幕(默认的.png)期间,应用程序正在加载到内存中,因此它无法执行任何代码,包括UIAlertView的显示。这就是为什么在闪屏消失之前您不会看到警报的原因——在调用
    applicationdifinishload:withOptions:
    之前,删除闪屏是应用程序做的最后一件事

    您可以做的是创建一个视图控制器来模拟您的启动屏幕。这很容易——如果愿意,您甚至可以将
    default.png
    重新用作背景,不过更好的办法是在第一视图控制器中显示协议文本和同意/不同意按钮

    关于您的问题:使用
    exit()
    ,最好避免这样做。如果用户拒绝,您就什么也做不了。当然,如果您按照我的建议选择view controller路线,您可以为用户留下另一个同意的机会

    另一个想法是,苹果允许你在上传二进制文件时定制应用程序的EULA——你可以把它放在那里,然后被覆盖