我的应用程序一直运行到昨天.现在,突然之间,由于某种原因,当我启动我的应用程序时,而不是像往常一样连接到我的数据库,我在
Xcode控制台中多次出现以下错误:
2018-09-28 22:18:55.376987-0700 [2378:1001370] TIC Read Status
[2:0x0]: 1:57 2018-09-28 22:18:56.927081-0700 [2378:1001370] TIC Read
Status [3:0x0]: 1:57 2018-09-28 22:18:56.927210-0700 [2378:1001370]
TIC Read Status [3:0x0]: 1:57
我完全不知道为什么 – 但现在我根本无法登录我的应用程序.知道为什么会这样吗?
NOT a duplicate: The answer to this cannot possibly be “SOLUTION: Just wait for newer versions/updates of Xcode 9.” Also, the above error is
keeping my app from connecting to the database – others reporting this
error have stated that it doesnt affect the performance of their app.
编辑:这是我正在尝试连接(使用Drupal iOS SDK).
UPDATE (OCT 1, 2018): Epic update…as soon as I take DIOSSession out of AppDelegate and put it into my initial ViewController, I’m able
to connect as normal again. Anyone know why this is? I’m
thrilled…but I imagine there’s some sort of repercussion for doing
this in ViewController and not in AppDelegate.
AppDelegate.m
#import "AppDelegate.h"
#import "DIOSSession.h"
#import "AFNetworking.h"
#import "DIOSSystem.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[DIOSSession setupDios];
}
ViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
{
// NSLog(@"not first launch");
}
else
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
NSDictionary *user = (NSDictionary*) [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"diosSession"]];
NSString *token = [[NSUserDefaults standardUserDefaults] objectForKey:@"diosToken"];
if (user && token) {
[[DIOSSession sharedSession] setUser:user];
[[DIOSSession sharedSession] setCsrfToken:token];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UITabBarController *yourViewController = (UITabBarController *)[storyboard instantiateViewControllerWithIdentifier:@"tabBar"];
[self.navigationController pushViewController:yourViewController animated:YES];
} else {
NSLog(@"No session present");
}
}
最佳答案 我可以通过将DIOSSession移出AppDelegate并重新连接到我的初始ViewController的viewDidLoad方法来重新连接到我的数据库.出于某种原因,iOS 12似乎不喜欢AppDelegate中的didFinishLaunchingWithOptions …我在该方法中放置的任何东西都不会执行或崩溃我的应用程序.如果你们都有,那么我们会对此有所了解.