2014-11-23 1 views
0

iOS 키 체인 기술에 대한 기술을 완전히 이해하지 못하고 있습니다. 그것을 사용하는 더 적절한 방법은 무엇입니까?iOS 키 체인 기술을 사용하는 더 적절한 방법은 무엇입니까?

이 경우 iOS 키 체인의 래퍼 (https://github.com/matthewpalmer/Locksmith)가 있다고 가정하고 나중에 사용하기 위해 사용자 자격 증명 (전자 메일 및 암호)을 저장하려고합니다.

Locksmith.saveData(self.passwordTextField.text, forKey: "password", inService: "AppName", forUserAccount: self.emailTextField.text) 

하지만 내가 처음 것으로 나타났습니다 : 나는 가장 좋은 방법은이 함수를 호출 할 수 있다고 생각

func saveData(data: Dictionary<String, String>, forKey key: String, inService service: String, forUserAccount userAccount: String) -> (NSDictionary?, NSError?) { /* ... */ } 

은 다음과 같다 :

좋아, 지정된 래퍼에서 다음과 같은 기능을 가지고 인수는 사전입니다. 이 사전의 핵심은 무엇입니까? 이것이 "암호"라면 "forKey"매개 변수에 대한 인수가되어야합니다.

"inService"매개 변수에 대한 인수가 응용 프로그램의 이름이어야합니다.

미리 감사드립니다.

답변

1

키 체인 자체를 사전으로 생각하면 키에 따라 개체를 저장할 수 있습니다. 이 경우 키는 키, 서비스 및 사용자 계정의 조합입니다. "키"당 하나의 값을 저장하도록 제한하는 대신 사전을 저장할 수 있습니다.

따라서, 귀하의 경우에는 하나의 항목 즉 키 "암호"에 대한 사용자 암호를 저장할 수 있지만 추가 항목을 저장할 수있는 유연성이 있습니다.

키 체인의 일반적인 용도는 인앱 구매 기록을 저장하는 것입니다. 이 경우 예를 들어 여러 개의 제품 식별자와 각각에 대해 구매 한 수량을 저장할 수 있습니다.

+0

내 경우에는 다음과 같은 최상의 해결책이 될 것입니다. - forKey : "UserCredentials", inService : "AppName", forUserAccount : self에 대한 Locksmith.saveData ([ "password": self.passwordTextField.text] emailTextField.text)', 맞습니까? – FrozenHeart

+1

예, 작동합니다. – Paulw11

+0

확인해 주셔서 감사합니다. – FrozenHeart

관련 문제