2010-11-30 4 views
5

Ich möchte einen Passcode in meine bestehende Anwendung integrieren. Kennt jemand gute Tutorials oder solche, die zu meiner Suche führen würden? Gibt es ein Standard-Apple-Tutorial, um eins zu integrieren? Ich konnte keins finden, aber ich stelle mir vor, es wäre so einfach wie eine Tastaturansicht in die didFinishLaunching & resignActive-Methoden richtig? Würde keychain ein guter Platz sein, es zu speichern? Auch hier würde ich das Rad nicht neu erfinden, vor allem, wenn es eine bewährte sichere Methode gibt. Hier ist das eine gute Tutorial, das ich finden konnte, aber es enthält keine Ansicht oder mehrere Aufrufpunkte. http://gorgando.com/blog/topics/technology/iphone_development/simple-iphone-tutorial-password-management-using-the-keychain-by-using-sfhfkeychainutilsiPhone Passcode-Integration

Danke!

Antwort

2

Ich habe durch diese gewesen, aber ich habe keine Verbindung mit einem Api oder etwas, das Sie verwenden können, aber einige Hinweise:

-mit Multitasking Sie den Passcode Ansicht in der becomeActive Methode aufrufen sollte in Der App-Delegat ist auch die Art und Weise, in der Ihre App bei der Rückgabe aus dem Hintergrund nach einem Passcode fragen kann.

im Grunde müssen Sie de Passcode in zwei Methoden aufrufen:

- (void)applicationDidEnterBackground:(UIApplication *)application 

- (void)applicationDidBecomeActive:(UIApplication *)application 

die erste, bevor er Hintergrund genannt wird, und es ist besser, rufen Sie den Code-Sperre Ansicht präsentieren vor als nach dem Hintergrund gehen, denn wenn Sie dies nachher aufrufen, sollten Sie die Anwendung wahrscheinlich so sehen, wie Sie sie verlassen haben, bevor Sie in den Hintergrund gehen, bevor die Code-Lock-Ansicht angezeigt wird.

der zweite, ist irgendwie offensichtlich = D, aber Sie müssen steuern, um die Code-Sperre nicht zweimal zu präsentieren, weil die zweite Methode auch aufgerufen wird, wenn Sie vom Hintergrund zurückkehren.

-In Bezug auf das Passwort, kann es in einigen benutzerdefinierten Konfigurationsdatei, wie uns ein Plist mit ein wenig Verschlüsselung gespeichert werden.

-In Bezug auf die Ansicht können Sie Ihre eigenen ViewController mit einigen Protokollen erstellen, die diese Art von Verhalten behandelt. Keine große Sache.

hoffe, das hilft, bye

+0

Können Sie mir genau sagen, welche Funktionen ich im Delegaten überschreiben muss, um alle Fälle abzudecken, in denen ich den Benutzer anmelden muss? – Josh

+0

Sicher .. Ich habe gerade den Beitrag bearbeitet ... hoffe das hilft = D – Omer

+0

@Omer. Irgendeine Idee, wie man das "das Codeschloss zweimal präsentieren" verhindert? Ich habe etwas gehackt, aber es ist sicherlich nicht sauber. Die Verwendung von Protokollen scheint eine viel sauberere Methode zu sein.Haben Sie einen Vorschlag dafür? – okysabeni

1

NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults];

Wenn Sie ein Speicherschema haben, dann legen Sie dies in eine bestimmte Aktion othervise setzen dies beim ersten Start der Anwendung.

Check in AppDelegate richtigen setzen, wenn sonst Bedingung dann über Code verwenden

Jetzt können Sie dieses Passwort zugreifen

NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults]; if (standardUserDefaults) self.passCodeString = [standardUserDefaults objectForKey: @ "lock"];

Und Sie können dies in einer bestimmten Ansicht (für Passcode) verwenden.

+2

Es ist nicht wirklich notwendig zu überprüfen, ob 'standardUserDefaults' nicht-nil ist (mit Ihrem if-Block). Wenn es "nil" ist, wird nichts passieren, wenn Sie Nachrichten an es senden, obwohl ich nicht einmal wirklich sicher bin, ob es möglich ist, dass '[NSUserDefaults standardUserDefaults]' 'nil' trotzdem zurückgibt. – dreamlax

+1

Ich denke, es ist nur eine gute Angewohnheit von Leuten, die aus C++, C#, Java Welt kommen und es tut nichts weh. –