书上源码,问题见注释,谢谢!!!!!//Fraction.h
 @interface Fraction: NSObject
 {
    int numerator;
    int denominator;
 }@property int numerator, denominator;-(void)        print;
-(double)    convertToNum;
 
 @end
//Fraction.m
 #import "Fraction.h" @implementation Fraction
 
@synthesize numerator, denominator;
 
 -(void) print
 {
     NSLog (@"%i/%i", numerator, denominator);
 }
 
 -(double) convertToNum
 {
    if (denominator != 0)
         return (double) numerator / denominator;
     else
        return 1.0;
 }
 
 @end
#import <Foundation/Foundation.h>#import "Fraction.h"
int main (int argc, const char * argv[])
 {
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];    // insert code here...
     Fraction *myFraction = [[Fractionalloc] init];
     
     [Fraction numerator:100]; //这两句有问题
     [Fraction denominator:200];//这两句有问题     NSLog(@"%d %d",[Fraction numerator],[Fraction denominator]); //把上面那两句注释掉可以输出结果     [pool drain];
    return 0;
}
为什么无法为变量赋值?????????

解决方案 »

  1.   

    不好意注释那两行写错了,改正如下:是改正后还存在问题,也就是不能设置值!!!!!!!!! [myFraction numerator:100]; //这两句有问题
     [myFraction denominator:200];//这两句有问题
      

  2.   

    设置值用setNumerator、setDenominator
      

  3.   

    myFraction. numerator = 100;
    myFraction. denominator = 200;
    属性的调用和赋值用点号,中括号是调用方法的:[myFraction  方法];
      

  4.   

    myFraction. numerator = 100;
    myFraction. denominator = 200;
    或者[myFraction setNumerator]
    [myFraction setDenominator]