2011-10-29 48 views
1

中創建新的類實例我(本質上)是新編程並試圖學習Objective-C。我正在使用一個單元轉換程序,它使用一個類的實例來存儲和轉換單元。因此,舉例來說,如果我想爲1 ft轉換爲英寸,該程序執行以下操作:從另一個實例方法(目標C)

  1. 中的新實例創建長度爲類(myLength)
  2. 存儲值和單位的新實例類(myMass)
  3. 調用一個實例方法的值轉換爲新的單位

我長級工作正常,只是如我所料。

現在我想創建一個名爲Area的新類,它創建Length類的兩個實例,並使用Length類執行轉換。但是,當我嘗試從Area.m中聲明我的Length類的新實例時,我收到警告「長度未聲明」。

是否可以在實例方法內創建不同類的實例?更具體地說,我可以在Area類實例方法中創建兩個我的Length類的實例嗎?

(如果我已經弄糟了我的任何術語,請事先原諒我)。

下面是Area.m的代碼是給我麻煩的一個片段:

@implementation Area 

-(void) setCompound: (double) myVal unit1: (char) c1 unit2: (char) c2 

{ 

// Create two new instances of the Length class 
// THE FOLLOWING TWO LINES ARE GIVING ME TROUBLE 
Length * aLength = [[Length alloc] init]; 
Length * bLength = [[Length alloc] init]; 

[aLength setLength:myVal units: c1]; // Set the value and units of first length 

[bLength setLength: 1 units: c2]; // Set the value and units of the second length 

} 

@end 

回答

2

您需要導入Length頭文件中Area.h

#import "Length.h" 
+1

這種進口應在Area.m,而不是Area.h. –

+0

太棒了。應該有這個想法。非常感謝! – outflowboundary

+1

@Josh我總是將頭文件導入到頭文件中,然後將相應的頭文件導入到實現中...這是stanford iOS課程中教導的樣式...(即將length.h導入到area.h中,import area.h進入area.m)...這是錯誤的嗎? – heisenberg

相關問題