Skip navigation.
 
mlRe: Weird coder problem
FROM : Vince DeMarco
DATE : Mon Nov 25 23:33:48 2002

How about calling super in the coding methods.


On Monday, November 25, 2002, at 12:01  PM, Joseph Jones wrote:

> OK, I can't seem to figure out why my items are archiving correctly,
> but
> blowing up on unarchiving. There seems to be a problem with
> unarchiving the
> array in my class, but the call stack is blowing up in the libraries
> and not
> my code, which makes it a little difficult to debug. Could anyone here
> provide an insight? I will append a cut down version of my code here:
>
> __________________________________________________________
>
> /* ProjectItem */
>
> #import <Cocoa/Cocoa.h>
>
> @interface ProjectItem : NSObject <NSCoding>
> {
>    //Item Data
>    NSString*    _title;
>
>    //Children
>    NSMutableArray* _children;
> }
>
> - (id) init;
> - (void) dealloc;
> - (int) numChildren;
> - (ProjectItem*) childAtIndex:(int)index;
> - (void) addChild:(NSString*)title;
>
> - (NSString*) title;
> - (void) setTitle:(NSString*)aTitle;
>
> - (id) initWithCoder: (NSCoder*) decoder;
> - (void)encodeWithCoder: (NSCoder*) encoder;
>
> @end
>
> @implementation ProjectItem
>
> - (id) init
> {
>    self = [super init];
>
>    if ( self )
>    {
>        _children = [[NSMutableArray alloc] init];
>        _title  = @"";
>    }
>
>    return self;
> }
>
> - (void) dealloc
> {
>    [_children release];
>    [_title release];
>    [super dealloc];
> }
>
> - (int) numChildren
> {
>    return [_children count];
> }
>
> - (ProjectItem*) childAtIndex:(int)index
> {
>    return [_children objectAtIndex:index];
> }
>
> - (void) addChild:(NSString*)title
> {
>    ProjectItem* item = [[ProjectItem alloc] init];
>    [item setTitle:title];
>    [_children addObject:item];
> }
>
> - (NSString*) title
> {
>    return _title;
> }
>
> - (void) setTitle:(NSString*)aTitle
> {
>    [aTitle retain];
>    [_title release];
>    _title = aTitle;
> }
>
> - (void) encodeWithCoder: (NSCoder*) coder
> {
>    if ( [coder allowsKeyedCoding] )
>    {
>        [coder encodeObject:_title forKey:@"title"];
>        [coder encodeObject:_children forKey:@"children"];
>    }
>    else
>    {
>        [coder encodeObject:_title];
>        [coder encodeObject:_children];
>    }
> }
>
> - (id) initWithCoder:(NSCoder*) coder
> {
>    self = [super init];
>    if ( self )
>    {
>        if ( [coder allowsKeyedCoding] )
>        {
>            _title = [[coder decodeObjectForKey:@"title"] retain];
>            _children = [[coder decodeObjectForKey:@"children"]
> retain];
>        }
>        else
>        {
>            _title = [[coder decodeObject] retain];
>            _children = [[coder decodeObject] retain];
>        }
>    }
> }
>
> @end
> _______________________________________________
> cocoa-dev mailing list | <email_removed>
> Help/Unsubscribe/Archives:
> http://www.lists.apple.com/mailman/listinfo/cocoa-dev
> Do not post admin requests to the list. They will be ignored.

_______________________________________________
cocoa-dev mailing list | <email_removed>
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

Related mailsAuthorDate
mlWeird coder problem Joseph Jones Nov 25, 17:19
mlRe: Weird coder problem Joseph Jones Nov 25, 20:43
mlRe: Weird coder problem Joseph Jones Nov 25, 21:01
mlRe: Weird coder problem Vince DeMarco Nov 25, 23:33
mlRe: Weird coder problem Joseph Jones Nov 25, 23:54
mlSOLVED:Re: Weird coder problem Joseph Jones Nov 26, 00:03