Hello MacRumors,
I'm getting a EXC_BAD_ACCESS error message within the 'description' method, specifically at the NSString statement. I have no idea why. Someone please help me.
I'm getting a EXC_BAD_ACCESS error message within the 'description' method, specifically at the NSString statement. I have no idea why. Someone please help me.
Code:
#import <Foundation/Foundation.h>
@interface Employee : NSObject {
@private
NSString *name;
int grade;
}
@property (retain) NSString *name;
@property int grade;
@end
Code:
#import "Employee.h"
@implementation Employee
@synthesize name, grade;
-(void) encodeWithCoder: (NSCoder *) coder
{
[coder encodeObject:name forKey:@"EMPname"];
NSNumber *gradeBox = [NSNumber numberWithInt:grade];
[coder encodeObject:gradeBox forKey:@"EMPgrade"];
}
-(id) initWithCoder: (NSCoder*) coder
{
name = [coder decodeObjectForKey:@"EMPname"];
NSNumber *gradeBox = [coder decodeObjectForKey:@"EMPgrade"];
grade = (int) [gradeBox integerValue];
return self;
}
-(NSString *) description
{
NSString *desc =
[NSString stringWithFormat:@"Employee: %@, Grd: %i", name, grade];
return desc;
}
-(id) init
{
[super init];
return self;
}
-(void) dealloc
{
[super dealloc];
}
@end
Code:
#import <Foundation/Foundation.h>
#import "Employee.h"
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Employee *bob = [[Employee alloc] init];
[bob setName:@"Bob Jones"];
[bob setGrade:21];
NSLog(@"Details are %@", [bob description]);
[NSKeyedArchiver archiveRootObject:bob toFile:@"/Users/Rob/Bob.plist"];
Employee *fred = [NSKeyedUnarchiver unarchiveObjectWithFile:@"/Users/Rob/Bob.plist"];
NSLog (@"The new object is %@", [fred description]);
[pool drain];
return 0;
}