1
我在Xcode中使用启动屏幕为我的应用程序做启动屏幕。初始屏幕问题iPhone
在启动画面上只有一个图像,背景中没有API命中。
在时间超过20秒和应用程序崩溃的启动画面上花费的时间太长,我也在设备日志上检查过它。
有时它崩溃,有时它会运行,但它总是需要很长时间。
我不能从那里移动到下一个屏幕。并且它仅在iPhone 6 Plus的启动屏幕之前显示白色屏幕(其他设备上没有白色屏幕)。
如何解决iPhone 6 Plus的白屏问题并解决闪屏时间长的问题?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
// Override point for customization after application launch.
// self.prepareForContact()
if let a: AnyObject = (NSUserDefaults.standardUserDefaults().objectForKey("isFirstTime"))
{
if let a: AnyObject = (NSUserDefaults.standardUserDefaults().objectForKey("userid"))
{
self.createAppFromHomepage()
}
}
else
{
self.createAppFromWelcomeScreen()
}
isAllImageDownloading = false
// Save this data to hit friend service on login on every launch...
NSUserDefaults.standardUserDefaults().setObject("1", forKey: "hitFriendService")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: CognitoRegionType, identityPoolId: CognitoIdentityPoolID)
let configuration = AWSServiceConfiguration(region: DefaultServiceRegionType, credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
//print(credentialsProvider.secretKey)
if let event_id: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey("eventId")
{
self.getEventDescription()
self.uploadEventRemainingImages()
}
let session1 = AVAudioSession.sharedInstance()
session1.setCategory(AVAudioSessionCategoryPlayAndRecord, withOptions: AVAudioSessionCategoryOptions.MixWithOthers|AVAudioSessionCategoryOptions.DefaultToSpeaker|AVAudioSessionCategoryOptions.AllowBluetooth, error: nil)
session1.setActive(true, error: nil)
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
{
if let dirPath = paths[0] as? String
{
self.excludeFromBackupToICloud(dirPath)
}
}
if application.respondsToSelector("registerUserNotificationSettings:") {
let types:UIUserNotificationType = (.Alert | .Badge | .Sound)
let settings:UIUserNotificationSettings = UIUserNotificationSettings(forTypes: types, categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
}
else
{
// Register for Push Notifications before iOS 8
// application.registerForRemoteNotificationTypes(.Alert | .Badge | .Sound)
}
if let isFirstTime: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey("isFirstTime")
{
}
else
{
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
// NSUserDefaults.standardUserDefaults().setObject("1", forKey: "isFirstTime")
}
return true
}
请分享应用程序代码 –
您提到了“无背景API”,这对于保持UI的响应实际上是一件好事。有几个调用可能会超过20秒:'createAppFromHomepage','AWSServiceManager','uploadEventRemainingImages',... – SwiftArchitect
AWSService管理器仅用于配置和其他方法,如createAppFromhomepage和uploadEventRemainingImages。这两个调用只有当我登录一次的应用程序,而我的问题是该应用程序在启动画面上崩溃。我无法访问登录屏幕,因此这两种方法不会影响它。 – Som