如何在objective-c中使用循环#import强类型对象

Pea*_*wer 1 pointers scope objective-c

如何在objective-c中使用循环#import强类型对象

我有一个音频控制器类,一个菜单类和一个游戏视图类.

应用程序委托设置这些类并分配指针,以便:

菜单类知道音频和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;

}
Run Code Online (Sandbox Code Playgroud)

和...

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

    @interface GameViewController : UIViewController {

        MenuViewController *menuref;
        AudioController *audioref;

    }
Run Code Online (Sandbox Code Playgroud)

小智 5

Fisrt,在你的.h文件中使用

@class GameViewController, AudioController
Run Code Online (Sandbox Code Playgroud)

@class AudioController, MenuViewController
Run Code Online (Sandbox Code Playgroud)

在你的.m文件中使用

#import "GameViewController"
#import "AudioController"
Run Code Online (Sandbox Code Playgroud)

#import "AudioController.h"
#import "MenuViewController.h"
Run Code Online (Sandbox Code Playgroud)

没有"循环引用"问题.其次,使用NSObject而不是实际的classname绝不是弱引用.另外,如果你的意思是#include说#include.如果你的意思是#import,请说#import.