Я искал решение этой проблемы, но, похоже, я единственный в Интернете, кто сталкивался с подобной проблемой.
Я использую класс-оболочку связки ключей, предоставленный Apple, для хранения пользователя и пароля в том виде, в каком они должны храниться. Когда я хочу вернуть пользовательское значение, это просто:
NSString *user = [keychain objectForKey:(id)kSecAttrAccount];
Получение пароля должно быть таким же простым, как и имя пользователя:
NSString *pass = [keychain objectForKey:(id)kSecValueData];
Но после этого, пытаясь распечатать их с помощью NSLog, ПОСЛЕ прохода на консоли ничего не отображается. Например:
NSLog(@"user: <%@>, pass: <%@>, something after the pass", user, pass);
Вывод этого NSLog:
user: <123456>, pass: <5433
Вызов [длина прохода] всегда дает мне число, превышающее фактическую длину прохода (в этом примере 10, когда я бы сказал, что его длина на самом деле равна 4).
Я понятия не имею, что происходит. Я сделал обходной путь, чтобы исправить эту проблему, пока я пытаюсь найти правильное решение (просматривая целочисленное значение каждого символа и разрешая только те, которые являются числами, буквами и некоторыми символами).
Заранее спасибо!