[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GDL2 custom class creation
From: |
Blake Nicholson |
Subject: |
GDL2 custom class creation |
Date: |
Mon, 3 Mar 2008 01:51:02 -0500 |
From what class should custom enterprise objects inherit, NSObject or
EOGenericRecord? I've tried both ways and have not been successful
running the following code snippet:
job = [[ESJob alloc] init];
[job setStyle:8];
[ec insertObject:job];
[ec saveChanges];
NSLog(@"%@", [jobDS fetchObjects]);
where ec is my EOEditingContext and jobDS is an EODatabaseDataSource
for the ESJob entity (I followed the setup in the GDL2 examples).
When I inherit from EOGenericRecord, the code fails when saving
changes and gives the output I copied in below. When ESJob inherits
from NSObject, the code fails when I attempt to fetch the objects.
I am running OS X (Leopard) and am using the sources from svn (the
revision I'm working with is 26179). My library combo is apple-apple-
apple. I've included the interface and implementation files for my
ESJob class below the error output I've received. If you need any
other info, please let me know.
Thank you,
Blake
*** Error when ESJob inherits from EOGenericRecord ***
2008-03-03 01:35:52.710 test[33391:10b] *** Assertion failure in -
[EODatabase entityForObject:], EODatabase.m:321
2008-03-03 01:35:52.734 test[33391:10b] No object entity name for
object <ESJob 0x42f530 : classDescription=(null)
values={
}> of class ESJob (No object entity name for object <ESJob 0x42f530 :
classDescription=(null)
values={
}> of class ESJob)
2008-03-03 01:35:52.738 test[33391:10b] *** Terminating app due to
uncaught exception 'NSInternalInconsistencyException', reason: 'No
object entity name for object <ESJob 0x42f530 : classDescription=(null)
values={
}> of class ESJob'
2008-03-03 01:35:52.772 test[33391:10b] Stack: (
2487029492,
2479961964,
2487029252,
2477370852,
1983600,
2063704,
959276,
962008,
1056412,
11572,
10536
)
Trace/BPT trap
*** ESJob.h ***
#import <Foundation/Foundation.h>
@interface ESJob : NSObject {
int _style;
ESJob *_previous;
ESJob *_next;
}
- (int)style;
- (void)setStyle:(int)aStyle;
- (ESJob *)previous;
- (void)setPrevious:(ESJob *)prevJob;
- (ESJob *)next;
- (void)setNext:(ESJob *)nextJob;
@end
*** ESJob.m ***
#import "ESJob.h"
@implementation ESJob
- (int)style
{
return _style;
}
- (void)setStyle:(int)aStyle
{
[self willChangeValueForKey:@"style"];
_style = aStyle;
[self didChangeValueForKey:@"style"];
}
- (ESJob *)previous
{
return _previous;
}
- (void)setPrevious:(ESJob *)prevJob
{
[self willChangeValueForKey:@"previous"];
[_previous autorelease];
_previous = [prevJob retain];
[self didChangeValueForKey:@"previous"];
}
- (ESJob *)next
{
return _next;
}
- (void)setNext:(ESJob *)nextJob
{
[self willChangeValueForKey:@"next"];
[_next autorelease];
_next = [nextJob retain];
[self didChangeValueForKey:@"next"];
}
@end
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- GDL2 custom class creation,
Blake Nicholson <=