Początkowo myślałem, że to zadziała, ale teraz rozumiem, że tak nie będzie, ponieważ artistCollection to obiekt NSMutableArray obiektów "Artist".Zapisz/Zapisz NSMutableArray obiektów na dysk?
@interface Artist : NSObject {
NSString *firName;
NSString *surName;
}
Moje pytanie brzmi, co jest najlepszym sposobem zapisu na dysku mojego NSMutableArray obiektów „Artysta”, aby można było załadować je następnym razem uruchomić mój wniosek?
artistCollection = [[NSMutableArray alloc] init];
newArtist = [[Artist alloc] init];
[newArtist setFirName:objFirName];
[newArtist setSurName:objSurName];
[artistCollection addObject:newArtist];
NSLog(@"(*) - Save All");
[artistCollection writeToFile:@"/Users/Fgx/Desktop/stuff.txt" atomically:YES];
EDIT
Dziękujemy, tylko jedna ostateczna rzeczą jestem ciekaw. Jeśli "Artist" zawierał dodatkową zmienną instancji NSMutableArray (softwareOwned) kolejnych obiektów (Applications), w jaki sposób rozszerzyć kodowanie, aby to uwzględnić? Czy dodać NSCoding do obiektu "Applications", a następnie zakodować to przed kodowaniem "Artist" lub czy istnieje sposób na określenie tego w "Artist"?
@interface Artist : NSObject {
NSString *firName;
NSString *surName;
NSMutableArray *softwareOwned;
}
@interface Application : NSObject {
NSString *appName;
NSString *appVersion;
}
wiele dzięki
Gary
Aby odpowiedzieć na to EDIT: po prostu wdrożyć NSCoding dla swojej klasie aplikacji oraz w encodeWithCoder Artist: i initWithCoder :, dodaj linie do obsługi kodowania/dekodowania tablicy zmiennych. Gdy zostanie poproszony o zakodowanie, tablica zapyta obiekty aplikacji o kodowanie. –
Ah Widzę, idealnie, dzięki Ole. – fuzzygoat