Очистить брелок для iPhone
Есть ли способ очистить брелок для моего приложения iphone? Либо команда очистки, либо список всех ключей, чтобы я мог удалить их сам.
1 ответ:
Нет такой вещи, как команда на чистку.
В любом случае, поскольку связка ключей, к которой имеет доступ ваше приложение, предназначена только для вашего приложения, вы можете легко отслеживать то, что вы написали в нем, и удалять его.Вы можете реализовать свой собственный метод очистки, который просто удалит один за другим все возможные типы данных, которые вы можете сохранить в keychain. Ниже показано, как я очищаю все мои записи GenericPassword:
- (BOOL)deleteKeychainData { /* delete custom data */ NSMutableDictionary *searchData = [NSMutableDictionary new]; [searchData setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass]; [searchData setObject:kTagKeychainService forKey:(id)kSecAttrService]; OSStatus statusData = SecItemDelete((CFDictionaryRef)searchData); [searchData release]; CHECK_CONDITION1(statusData == errSecSuccess || statusData == errSecItemNotFound, @"Error while deleting keychain data, OSStatus == %d", statusData); /* delete assymetric keys*/ return [self deleteKeyPair]; }
Итак, что вам нужно сделать, это вызвать этот метод для всех возможных значения kSecClass .
обратите внимание , что для разных типов данных требуется установить разные флаги словаря.С уважением