Zapisywanie adresu URL zestawu ALA w NSUserDefaults
Cześć, mam mojeALAsset URL
Zapisz wNSMutableArray
,
"ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=119A0D2D-C267-4B69-A200-59890B2B0FE5&ext=JPG",
"ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=92A7A24F-D54B-496E-B250-542BBE37BE8C&ext=JPG",
"ALAsset - Type:Photo, URLs:assets-library://asset/asset.JPG?id=77AC7205-68E6-4062-B80C-FC288DF96F24&ext=JPG
Nie byłem w stanie uratowaćNSMutableArray
wNSUserDefaults
z powodu błęduNote that dictionaries and arrays in property lists must also contain only property values.
Myślę o tym:
- (void)encodeWithCoder:(NSCoder *)encoder {
//Encode properties, other class variables, etc
[encoder encodeObject:self.selectedPhotos forKey:@"selectedPhotos"];
}
- (id)initWithCoder:(NSCoder *)decoder {
if((self = [super init])) {
//decode properties, other class vars
self.selectedPhotos = [decoder decodeObjectForKey:@"selectedPhotos"];
}
return self;
}
następnie zapisz i pobierz go za pomocą tego kodu:
- (void)saveCustomObject:(MyCustomObject *)obj {
NSData *myEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:obj];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:myEncodedObject forKey:@"myEncodedObjectKey"];
}
- (MyCustomObject *)loadCustomObjectWithKey:(NSString *)key {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *myEncodedObject = [defaults objectForKey:key];
MyCustomObject *obj = (MyCustomObject *)[NSKeyedUnarchiver unarchiveObjectWithData: myEncodedObject];
return obj;
}
Ale ja jakoś nie rozumiem tego, wciąż pada w moim kodzie. Nie wiem jak. I nie byłem w stanie go zapisać w NSUserDefaults. Mam nadzieję, że ktoś pomoże. Naprawdę miałem z tym problem. Mam nadzieję, że ktoś poprowadzi mnie właściwą ścieżką oszczędzania i odzyskiwania go we właściwy sposóbNSUserDefaults
. Następnie wróć doNSMutableArray
.