Я не могу получить метод archivedDataWithRootObject для вызова encodeWithCoder, насколько я понимаю, он довольно прост, но он не работает
Вот код:
#import <Foundation/Foundation.h>
@interface Details : NSObject <NSCoding>{
NSMutableArray *myArray;
}
@property(nonatomic,retain) NSMutableArray *myArray;
@end
#import "Details.h"
@implementation Details
@synthesize myArray;
-(id)init{
[super init];
return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder{
NSLog(@"initWithCoder");
if (self = [super init])
{
self.myArray = [[aDecoder decodeObjectForKey:@"details"]retain];
}
return self;
}
- (NSMutableArray*)getDetails{
NSLog(@"getDetials");
// NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
NSData *details = [[NSUserDefaults standardUserDefaults] objectForKey:@"details"];
if (details != nil){
NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:details];
if (oldSavedArray != nil)
self.myArray = [[NSMutableArray alloc] initWithArray:oldSavedArray];
else
self.myArray = [[NSMutableArray alloc] initWithCapacity:1];
}
return self.myArray;
}
- (void) addDetails:(NSMutableArray *)details{
NSLog(@"add Details");
[self.myArray addObject:details];
[NSKeyedArchiver archivedDataWithRootObject:self.myArray];
}
- (void) encodeWithCoder:(NSCoder *)coder;
{
NSLog(@"encodeWithCoder");
[coder encodeObject:self.myArray forKey:@"details"];
}
@end
NSLog (@ "encodeWithCoder") не запускается.
Я мог бы что-то упустить, Если у кого-то есть идеи, это будет оценено.