2016-04-08 17 views
1

Was ich in meiner App mache ist, wenn ein Benutzer ein Profilbild hochlädt, schreibe ich die Bilddaten in den Dokumentenordner, das heißt, ich speichere das Bild. Wenn ein Benutzer ein Profilbild entfernt, wird diese Datei gelöscht. Das ist also grundlegend.Wie sollte ein Benutzerprofilbild in der ios app heruntergeladen und verwaltet werden?

Aber ich entferne auch diese Datei, wenn der Benutzer sich abmeldet, denn wenn ich das nicht mache, wenn er sich abmeldet und mit einem anderen Benutzernamen anmeldet, erscheint das gleiche Profilbild. Also, was ich tue, ist, dass ich zum Zeitpunkt des Logins das Profilbild des Users herunterlade (die Pic-URL wird in der Login-API angegeben, während ich dieses Bild während des Uploads sende) in einem globalen Thread. Dies ist jedoch nicht die beste Lösung, da sich der Benutzer jedes Mal, wenn er sich anmeldet, Zeit nimmt, das Bild herunterzuladen.

Was ist die beste Lösung dafür?

Antwort

1

Sie sollten die URL des Bildes speichern und die URL zum Zeitpunkt der Anmeldung vergleichen. Wenn beide URLs identisch sind, dann lade das Bild nicht herunter und zeige es nicht an. Wenn beide URLs nicht identisch sind, lade das Bild herunter und speicher es und seine URL. Sie können jedes andere eindeutige Flag anstelle der URL speichern, das für jeden Benutzer eindeutig ist (zB Benutzer-ID).

1

Wenn es keine spezielle Anforderung zum Speichern des Bildes im Dokumentenverzeichnis gibt, versuchen Sie SDWebImage oder AFNetworking UIImage Bibliothek, die Bild-Cache bietet, wenn ein Bild einmal heruntergeladen wird es nicht immer das gleiche Bild herunterladen, sonst Sie können NSCache direkt verwenden, wenn Sie damit vertraut sind

Eine andere Lösung kann sein, wenn Sie Benutzerprofilbilder speichern müssen, können Sie sie in den einzelnen Ordner speichern/URL kann auf userId oder einige einzigartige Details basieren, so zuerst Sie überprüfen, ob das spezifische Bild existiert sonst downloaden Sie das Bild für ex: wenn userId 123 ist, dann speichern Sie das Bild als 'Bildname-123' oder erstellen Sie einen Ordnernamen 123 und speichern Sie das Bild darin
Hinweis: Wenn Ihr Bild zu groß ist oder zu viele Benutzer protokolliert wurden, kann Ihr Dokumentverzeichnis in diesem Fall viel Platz beanspruchen, sodass Sie einen Mechanismus zum Löschen älterer Profile für denselben

einrichten können