2015-02-04 5 views
0

내 앱에서 키 체인을 사용하여 저장된 로그인 자격 증명을 검색 한 다음 검색된 값으로 usernamepassword 텍스트 필드를 설정합니다. 그러나보기가로드되면 텍스트 필드가 비어 있습니다.내 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]; 
} 
+0

self.password는 텍스트 필드입니다. –

+1

'self.password'는'nil'입니까? – Larme

+0

TableView를 사용하여 .. ..? 다른 값으로 self.password.text = storedPassword .. – Vidhyanand

답변

-1

먼저 코드를 검색하기 전에 [super awakeFromNib]으로 문의하십시오. 문제가 해결되지 않고이 코드는 뷰 컨트롤러에있는 경우
"storedPassword를"내가 먼저 "storedUsername"여부를 확인해야한다고 생각, -viewDidLoad

-1

@Nandita 라오에 코드를 이동

을 시도하고 텍스트 필드에 할당하기 전에 NSLog를 사용하거나 사용하지 않습니다.

도움이되기를 바랍니다.

+0

어쨌든'storedUsername'과'storePassword'를 콘솔에 출력하는 것이 어떻게 도움이 될까요? -1 – Popeye

+0

이렇게하면 사용자 질문에 아무런 답변이 제공되지 않습니다. 더 많은 정보를 수집하는 의견이므로 대답이 아닌 의견을 남겨주십시오. – Popeye