升级xcode后-cocos2d不起作用的游戏:属性';游戏模式';在类型为';id<;UIApplicationLegate>';

升级xcode后-cocos2d不起作用的游戏:属性';游戏模式';在类型为';id<;UIApplicationLegate>';,xcode,cocos2d-iphone,Xcode,Cocos2d Iphone,使用cocos2d的游戏运行得很好,但使用新的xcode 4.3.3的情况并不好。它显示了以下错误: Property 'gameMode' not found on object of type 'id<UIApplicationDelegate>' 有什么想法吗?要解决您的问题,您只需将对[[UIApplication sharedApplication]delegate]的调用转换为应用程序委派的类型。所以,每次你打那个电话时,都要像这样算出结果: ((YourAppDele

使用cocos2d的游戏运行得很好,但使用新的xcode 4.3.3的情况并不好。它显示了以下错误:

Property 'gameMode' not found on object of type 'id<UIApplicationDelegate>'

有什么想法吗?

要解决您的问题,您只需将对
[[UIApplication sharedApplication]delegate]
的调用转换为应用程序委派的类型。所以,每次你打那个电话时,都要像这样算出结果:

((YourAppDelegateClass*)[[UIApplication sharedApplication] delegate])
AppDelegate *App = (AppDelegate *)[[UIApplication sharedApplication] delegate] ;
App.gameMode = @"MyGameMode";
然后,您可以从委托调用方法并访问属性:

((YourAppDelegateClass*)[[UIApplication sharedApplication] delegate]).gameMode = 
    @"someGameMode";

在appDelegate类中添加gameMode成员

@interface AppDelegate : NSObject
{
    NSString *gameMode;
    …..
    …..
}

@property (nonatomic, retain) MyAchievement *Achievement;

@end


@implementation AppDelegate

@synthesize gameMode;

……..
……..
……..
@end
访问方式如下:

((YourAppDelegateClass*)[[UIApplication sharedApplication] delegate])
AppDelegate *App = (AppDelegate *)[[UIApplication sharedApplication] delegate] ;
App.gameMode = @"MyGameMode";