NSMutableArray

Hello guys, I'm trying to save a NSMutableArray and I can't get the encoding to work..

I have this function that loads stuff from the internet:
Code:
- (void)downloadData {
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
	
	NSURL *jsonUrl = [NSURL URLWithString:@"blabla"];
	
	NSURLRequest *urlRequest = [NSURLRequest requestWithURL:jsonUrl
								
												cachePolicy:NSURLRequestReturnCacheDataElseLoad
											timeoutInterval:30];
	
	NSData *urlData;
	NSURLResponse *response;
	NSError *error;
	
	
	urlData = [NSURLConnection sendSynchronousRequest:urlRequest
									returningResponse:&response
												error:&error];
	
	SBJSON *jsonParser = [SBJSON new];

	NSString *jsonString =  [[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding]autorelease];
	
	NSArray *result = [jsonParser objectWithString:jsonString error:NULL];
	
	NSInteger aantalvragen = result.count;
	
	aVragen = [[NSMutableArray alloc] initWithCapacity:aantalvragen];
	
	for(int i = 0; i < aantalvragen; i++){
		
		NSDictionary *stream = (NSDictionary *)[result objectAtIndex:i];
		
		vragen *v = [[[vragen alloc] initWithName:[stream valueForKey:@"vraagid"] Vraag:[stream valueForKey:@"vraag"] Antwoord:[stream valueForKey:@"antwoord"] Uitleg:[stream valueForKey:@"uitleg"] Vraagtype:[stream valueForKey:@"vraagtype"]]autorelease];
		
		[aVragen addObject:v];
	}
	
	[jsonParser release];
	
	[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
	[self performSelectorOnMainThread:@selector(slaVragenOp) withObject:nil waitUntilDone:NO];
	[pool release];
}
The slaVragenOp function:
Code:
- (void)slaVragenOp {
	vragenLijst = [NSUserDefaults standardUserDefaults];
	dataVragenLijst = [NSKeyedArchiver archivedDataWithRootObject:aVragen];
	[vragenLijst setObject:dataVragenLijst forKey:@"vragenlijst"];
	[vragenLijst synchronize];
	[self performSelectorOnMainThread:@selector(opgeslagen) withObject:nil waitUntilDone:NO];
}
The opgeslagen function:
Code:
- (void)opgeslagen {
	vragenLijst = [NSUserDefaults standardUserDefaults];
	aVragen = [NSKeyedUnarchiver unarchiveObjectWithData:dataVragenLijst];
}
This all gets called with a button:
Code:
- (IBAction)startPressed {
	[self performSelectorOnMainThread:@selector(downloadData) withObject:nil waitUntilDone:NO];
}
I get an "unknown selector sent" error, saying that "vragen" is unrecognized..

I have vragen.h and vragen.m, they look like this:

vragen.h
Code:
#import <Foundation/Foundation.h>

@interface vragen : NSObject {
	NSDecimalNumber *VraagID;
	NSString *Vraag;
	NSString *Antwoord;
	NSString *Uitleg;
	NSString *Vraagtype;
}

@property (nonatomic, retain) NSDecimalNumber *VraagID;
@property (nonatomic, retain) NSString *Vraag;
@property (nonatomic, retain) NSString *Antwoord;
@property (nonatomic, retain) NSString *Uitleg;
@property (nonatomic, retain) NSString *Vraagtype;

-(id)initWithName:(NSDecimalNumber *)n Vraag:(NSString *)vraag Antwoord:(NSString *)antwoord Uitleg:(NSString *)uitleg Vraagtype:(NSString *)vraagtype;

@end
vragen.m
Code:
#import "vragen.h"

@implementation vragen

@synthesize VraagID, Vraag, Antwoord, Uitleg, Vraagtype;

-(id)initWithName:(NSDecimalNumber *)n Vraag:(NSString *)vraag Antwoord:(NSString *)antwoord Uitleg:(NSString *)uitleg Vraagtype:(NSString *)vraagtype{
	self.VraagID = n;
	self.Vraag = vraag;
	self.Antwoord = antwoord;
	self.Uitleg = uitleg;
	self.Vraagtype = vraagtype;
	return self;
}

@end
How do I need to define what vragen is? How do I get this to work with these methods:

Code:
- (void)encodeWithCoder:(NSCoder *)encoder {
	[encoder encodeObject:aVragen forKey:@"vraagid"];
	[encoder encodeObject:aVragen forKey:@"vraag"];
	[encoder encodeObject:aVragen forKey:@"antwoord"];
	[encoder encodeObject:aVragen forKey:@"uitleg"];
	[encoder encodeObject:aVragen forKey:@"vraagtype"];
}

- (id)initWithCoder:(NSCoder *)decoder {
	aVragen = [[decoder decodeDataObject] retain];
	return self;
}
Regards,

Rick
 
http://www.iphonedevsdk.com/forum/iphone-sdk-development/57042-nskeyedarchiver-nsmutablearray.html

你可能感兴趣的:(Stream,function,internet,interface,encoding,methods)