Проверить, есть ли вход в систему элемент доступен брелок

Я хочу проверить, существует ли ключевой элемент, если да, то мое приложение должно пропустить контроллер представления журнала и показать контроллер основного вида. но я продолжаю получать инструкции if, даже я запускаю приложение в первый раз, который еще не сохранен в цепочке ключей в журнале в контроллере представления.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //******* set the start page to login viewController to recipestablesviewController *******

    keychain=[[KeychainItemWrapper alloc]initWithIdentifier:@" MyuniqueIdentifeirkeychain" accessGroup:nil];
    bool isLoggedIn= ([[keychain objectForKey:(__bridge id)kSecValueData]) ? true:false;
    NSString *storyboardId = isLoggedIn ? @"MainIdentifier" : @"LoginIdentifier";
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *initViewController = [storyboard instantiateViewControllerWithIdentifier:storyboardId];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController = initViewController;
    [self.window makeKeyAndVisible];
    return YES;
}

вот мой код в моем логине viewController для сохранения моего элемента цепочки для ключей:

 NSString *authentication_token=[token valueForKey:@"auth_token"];
            keychain=[[KeychainItemWrapper alloc]initWithIdentifier:@"Hyper_recipes" accessGroup:nil];
[keychain setObject:authentication_token forKey:(__bridge id)(kSecValueData)];

Кто-нибудь знает причину? Когда я отлаживаю что-то внутри kSecValueData. Хотя я не сохранил в нем ничего внутри приложения.

1 ответ

По словам Арияйи. Вы должны очистить связку ключей, когда вы выходите из приложения. Использование:

- (void)resetKeychainItem;

После вы можете сделать свой тест.

Другие вопросы по тегам