うれしげに、@property で DataRow を作って見た例。
もうちょっと整理しないと。
/*
clang -o main4 main4.m -I /llvm/include -I /GNUstep/GNUstep/System/Library/Headers -L c:/GNUstep/GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString -Wno-format-security
*/
#import <stdio.h>
#import <Foundation/Foundation.h>
#import <Foundation/NSObject.h>
@interface Person : NSMutableDictionary
{
@private
int _id ;
NSString *_name;
int _age ;
}
@property (nonatomic) int id ;
@property (nonatomic,retain) NSString *name;
@property (nonatomic) int age ;
@end
@implementation Person
@synthesize id = _id ;
@synthesize name = _name ;
@synthesize age = _age ;
- (void)print
{
NSLog(@"%d %@(%d)", _id, _name, _age );
}
- (Person*)initWithId:(int)id Name:(NSString*)name Age:(int)age
{
_id = id;
_name = name;
_age = age;
return self;
}
@end
@interface Persons : NSObject
{
@private
NSMutableArray *_rows ;
}
@property (nonatomic,retain) NSMutableArray *rows ;
@end
@implementation Persons
@synthesize rows = _rows;
- (id)init
{
[super init];
_rows = [[NSMutableArray alloc] init];
return self;
}
- (void)print
{
for ( int i=0; i< [_rows count]; i++ ) {
Person *p = [_rows objectAtIndex:i];
[p print];
}
}
@end
int _main(int argc, char *argv[])
{
Person *masuda = [[Person alloc] initWithId:1 Name:@"masuda" Age:40];
Person *yamada = [[Person alloc] initWithId:2 Name:@"yamada" Age:50];
Person *tanaka = [[Person alloc] initWithId:3 Name:@"tanaka" Age:20];
Persons *persons = [[Persons alloc] init];
[persons.rows addObject:masuda];
[persons.rows addObject:yamada];
[persons.rows addObject:tanaka];
[persons print];
return 0;
}
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = _main(argc, argv);
[pool release];
return retVal;
}
