今天写了个例子,但是老是编译不过,后来查了查实gnustep不支持
@property 和 @synthesize语法,晕。。
// fraction.m
#import
@interface Fraction : NSObject
{
int _n;
int _d;
}
@property int _n,_d;
-(void) print;
@end
@implementation Fraction
@synthesize _n,_d;
-(void) print
{
NSLog(@" this is is %i/%i",_n,_d);
}
@end
int main (int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Fraction* fraction = [[ Fraction alloc] init];
fraction._n = 1;
fraction._d = 2;
[fraction print];
[fraction release];
[pool drain];
return 0;
}
//fraction.sh
gcc -o fraction fraction.m /
-fconstant-string-class=NSConstantString /
-I /GNUstep/System/Library/Headers/ /
-L /GNUstep/System/Library/Libraries/ /
-lobjc /
-lgnustep-base
在window GNUstep/shell下输出
$ ./fraction.sh
fraction.m:9: error: stray '@' in program
fraction.m:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'in
t'
fraction.m:16: error: stray '@' in program
fraction.m:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '_
n'
fraction.m: In function 'main':
fraction.m:31: error: request for member '_n' in something not a structure or un
ion
fraction.m:32: error: request for member '_d' in something not a structure or un
ion
后来在ubuntu上试了一下也不支持,嗨,只有xcode了