Ich arbeite an einer Snapchat-ähnlichen App und versuche, die NSData-Repräsentation von Bildern und Videos zwischenzuspeichern. Ich habe versucht mit NSCache, aber das hat nicht funktioniert, jedes Mal, wenn die App in den Hintergrund ging, wurden alle Objekte im Cache entfernt, dann habe ich NSUserDefaults zum Caching versucht, aber das war auch kein guter Ansatz. Obwohl es funktioniert und Daten mit NSUserDefaults bestehen bleiben, nimmt es eine Menge Speicher auf und ich habe gelesen, dass es unpraktisch ist, diese Art von Objekten in dieser Klasse zu speichern. Was sind Ihre Vorschläge für Caching und persistente Daten neben den beiden oben genannten?NSData Caching iOS
0
A
Antwort
0
Schreiben Sie NSData in Dokumentenverzeichnis Ihre Anwendung und es lesen, wenn Sie diese Daten wieder in Ihrer Anwendung benötigen
zum Schreiben von Daten auf Anwendungsdokumentenverzeichnis
//get the path of our apps Document Directory(NSDocumentDirectory)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//the path is stored in the first element
NSString *path = [paths firstObject];
//append the name of our file to the path: /path/to/myimage.png
path = path = [path stringByAppendingPathComponent:@"myimage.png"];
//store any errors
NSError *error;
// Write NSData to Disk
BOOL success = [imageData writeToFile:path atomically:YES];
if(success){
NSLog(@"Success");
}else{
NSLog(@"Error: %@",[error localizedDescription]);
}
zum Lesen von Daten aus der Anwendung des Dokumentverzeichnis
/get the path of our apps Document Directory(NSDocumentDirectory)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//the path is stored in the first element
NSString *path = [paths firstObject];
//append the name of our file to the path: /path/to/myimage.png
path = path = [path stringByAppendingPathComponent:@"myimage.png"];
//store any errors
NSError *error;
NSData *rawImage = [NSData dataWithContentsOfFile:path
options:NSDataReadingMappedIfSafe error:nil];
if(rawImage){
UIImage *image = [UIImage imageWithData:rawImage];
NSLog(@"%@",image);
}else{
NSLog(@"Error: %@",[error localizedDescription]);
}
Verwandte Themen
- 1. iOS 6 Problem MPMediaItem zu NSData konvertieren
- 2. unpad NSData von entschlüsseln auf ios
- 3. NSData gespeichert irgendwo
- 4. Wie Bilder von Gif-Bild in NSData für iOS konvertieren?
- 5. iOS: Wie konvertiert man ein Video PHAsset zu NSData
- 6. Wie senden NSData mit POST von einer iOS-Anwendung?
- 7. Wie NSData mit PDF-Inhalt in iOS UIWebView anzeigen?
- 8. Ersatz für NSData veraltet dataWithContentsOfMappedFile
- 9. konvertieren NSData zu PEM-Zertifikat Anmeldung Node.js
- 10. Wie konvertiert man gedruckte NSData wieder in NSData?
- 11. Wie hängt man NSData an NSData in Objective-C an?
- 12. So spielen Sie eine NSData im Videoplayer
- 13. Kann ich HTTP-Caching mit einer NSURLSessionDownloadTask auf iOS verwenden?
- 14. Prevent iOS 6 von Caching Ajax POST-Requests
- 15. NSData und UIImage
- 16. NSData zu NSString Codierung
- 17. iPod Bibliothekspfad zu NSData
- 18. Convert AVPlayerItem in NSData
- 19. Parsing NSData ist Abstürze
- 20. iPhone - int zu NSData?
- 21. NSData dataWithContentsOfURL Cache
- 22. Speicherverlust erhalten - NSData Konvertierung
- 23. NSData Dateityp Validierung
- 24. QLPreviewController mit NSData?
- 25. Wie Bool NSData konvertieren
- 26. NSData baseEncodedString returning nil
- 27. NSData Bytes schreibgeschützt?
- 28. NSData subdataWithRange Frage
- 29. Iterate durch NSData Bytes
- 30. NSData to UIImage