objective-c合成存儲器問題

tags:    時間:2013-12-03 21:43:27

書上源碼,問題見註釋,謝謝!!!!!

//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 
 
 #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;
 }
 


為什麼無法為變數賦值?????????
------解決方案--------------------
不好意註釋那兩行寫錯了,改正如下:是改正後還存在問題,也就是不能設置值!!!!!!!!! 

[myFraction numerator:100]; //這兩句有問題
 [myFraction denominator:200];//這兩句有問題
------解決方案--------------------
設置值用setNumerator、setDenominator
------解決方案--------------------
myFraction. numerator = 100;
myFraction. denominator = 200;
屬性的調用和賦值用點號,中括弧是調用方法的:[myFraction  方法];
------解決方案--------------------
myFraction. numerator = 100;
myFraction. denominator = 200;
或者[myFraction setNumerator]
[myFraction setDenominator]

推薦閱讀文章

Bookmark the permalink ,來源:互聯網