내 앱에서 키 체인을 사용하여 저장된 로그인 자격 증명을 검색 한 다음 검색된 값으로 username
및 password
텍스트 필드를 설정합니다. 그러나보기가로드되면 텍스트 필드가 비어 있습니다.내 IOS 응용 프로그램에서는 사용자 이름과 텍스트 필드가보기에 저장된 값으로 채워지지 않습니다
-(void) awakeFromNib {
[self retrieveStoredLoginInformation];
}
- (void) retrieveStoredLoginInformation {
KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil];
NSString *storedUsername = [keychain objectForKey:(__bridge id)kSecAttrAccount];
NSString *storedPassword = [[NSString alloc] initWithData:[keychain objectForKey:(__bridge id)(kSecValueData)] encoding:NSUTF8StringEncoding];
**[self.username setText:storedUsername];
[self.password setText:storedPassword];**
}
나는 awakeFromNib
메서드가 먼저 호출됨을 확인했습니다. 그것은 사용자 이름과 암호를 올바르게 검색합니다. 텍스트 필드의 값을 설정하는 코드가 다른 곳에 있어야합니까?
무엇이 누락 되었습니까?
편집 1 : NSLog 을 사용하여 사용자 이름과 비밀번호를 실제로 인쇄했는지 확인했습니다. 또한 ViewViewroller가 아닌 일반 ViewController입니다. 또한 사용하여 설정을 시도했습니다 self.username.text = storedUsername; self.password.text = storedPassword; 그 중 하나가 작동하지 않았다.
내 필드와 viewDidLoad 함수를 정의한 방법입니다.
@interface LoginViewController()
@property (weak, nonatomic) IBOutlet UITextField *username;
@property (weak, nonatomic) IBOutlet UITextField *password;
- (void)viewDidLoad {
[super viewDidLoad];
UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"image.png"] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
}
self.password는 텍스트 필드입니다. –
'self.password'는'nil'입니까? – Larme
TableView를 사용하여 .. ..? 다른 값으로 self.password.text = storedPassword .. – Vidhyanand