2010-02-07 33 views
1

如何使用圓形#進口到強類型的Objective-C對象如何使用圓形#進口到強類型的Objective-C對象

我有一個音頻控制器類,菜單類和gameview類。

的應用程序委託建立這些類和分配一個指針所以:

菜單類是知道的音頻和gameview類 的gameview類具有音頻和菜單類

我參考我使用NSObject來從菜單類中引用gameview類。這是因爲菜單類具有對gameview類的引用並且具有#import gameview.h聲明。該代碼將不會編譯與循環#import

建議請:)?

@interface MenuViewController : UIViewController { 

    NSObject *gameref; // weak type here to avoid include of gameview above 
    AudioController *audioref; 

} 

和...

#import "AudioController.h" 
#import "MenuViewController.h" 

    @interface GameViewController : UIViewController { 

     MenuViewController *menuref; 
     AudioController *audioref; 

    } 
+0

你得到了什麼確切的錯誤信息?此外,'id'是更標準的通用類型。在這種情況下,你應該像jib建議的那樣做,而不是使用'id'或'NSObject *'。 – outis 2010-02-07 22:11:19

+0

我得到了一個編譯器警告,因爲gameref作爲NSObject而不是gameviewcontroller的寬鬆輸入,當調用它的方法 – PeanutPower 2010-02-07 22:15:29

回答

5

最前一頁,在您的.h文件中使用

@class GameViewController, AudioController 

@class AudioController, MenuViewController 
在.m文件

使用

#import "GameViewController" 
#import "AudioController" 

#import "AudioController.h" 
#import "MenuViewController.h" 

沒有 '循環引用' 的問題。其次,使用NSObject而不是實際的類名不是任何弱引用。另外,如果你的意思是#include說#include。如果您的意思是#import,請說#import。

+0

乾杯,我很高興你明白我的意思。沒有更多的編譯器警告YAY :) – PeanutPower 2010-02-07 22:13:36

相關問題