Buduję aplikację, która używa NSCoding, aby zapisać obiekty NSObject do klasy documentPath. Nie mam żadnych problemów z tym, jestem po prostu ciekawa.Co dzieje się z obiektem NSArray podczas kodowania?
Mam MACompany, która implementuje metody delegatów NSCoding.
- (void) encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:address_1 forKey:kAddress_1];
[encoder encodeObject:address_2 forKey:kAddress_2];
[encoder encodeObject:city_town forKey:kCity_Town];
[encoder encodeObject:company_name forKey:kCompany_Name];
[encoder encodeObject:country forKey:kCountry];
[encoder encodeObject:date_added forKey:kDate_Added];
[encoder encodeObject:fax forKey:kFax];
[encoder encodeObject:parent_company_website forKey:kWebsite];
[encoder encodeObject:postal_code forKey:kPostal_Code];
[encoder encodeObject:state_province forKey:kState_Province];
[encoder encodeObject:type forKey:kType];
[encoder encodeObject:stores forKey:kStores]; //NSArray of custom NSObjects
}
Jak widać, mam NSArray niestandardowych NSObjects (MAStore). Każdy z tych obiektów implementuje te same NSCoding, co nie.
Jednak moje pytanie brzmi, kiedy zadzwonić encodeWithCoder:(NSCoder *)encoder
metodę w MAStore, i dostaje się do [encoder encodeObject:stores forKey:kStores]
, wszystkie obiekty będą przechowywane w stores
NSArray się nazywa metoda encoderWithCoder:(NSCoder *)encoder
jeśli realizowane?
EDIT
Powód pytam jest to, że chcę wiedzieć, czy to będzie działać, zanim zainwestować czas robiąc coś takiego. Mam wiele niestandardowych obiektów NSObject z NSArrays, które posiadają więcej niestandardowych obiektów NSObject. Byłoby długim procesem stwierdzenie, że nie działa.
Dziękuję bardzo! :RE –