Други начини за запазване на NSMutableArray в Xcode

Получавам грешка, когато се опитвам да запазя своя NSMutableArray в NSUserDefaults и прочетох достатъчно, за да разбера това, защото масивът ми е такъв:

CustomClass *customObject;
NSMutableArray *mutArray = [[NSMutableArray alloc]initWithObjects:customObject,nil];

Тъй като mutArray има обект без списък със свойства (customObject), той не може да бъде записан нито в NSUserDefaults, нито във файл .plist, така че имам нужда от друг начин да го запазя.


person raej2010    schedule 05.03.2014    source източник
comment
възможен дубликат на Най-добрият начин за запазване в nsuserdefaults за персонализиран клас?   -  person user1459524    schedule 06.03.2014


Отговори (2)


Накарайте CustomClass да внедри протокола < NSCoding >, след което архивирайте екземпляра в данни. Сега можете да добавите данните към масива / plist. Или го запазете на диск.

person Wain    schedule 05.03.2014

Когато запазвате променлив масив (или речник), неговата „променливост“ не трябва да ви обърква. Бихте го запазили, както бихте спасили неговия непроменлив събрат.

За да го направите отново променлив, когато го зареждате, трябва да го заредите и да извикате mutableCopy на заредения обект. Знам, че това не е вашият въпрос в момента, но имам чувството, че скоро ще бъде.

За да запазите успешно масив или речник, всички обекти (техните класове...), които съдържа контейнерът, трябва да отговарят на протокола <NSCoding>. Повече за това тук на SO.

person Rok Jarc    schedule 06.03.2014