5

对于旧版本的 xcode/ios,我使用了:

appDelegate =(AppDelegate *)[[UIApplication sharedApplication] delegate];

访问 AppDelegate

#import "AppDelegate.h"


 @property (nonatomic,retain) AppDelegate *appDelegate;



#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate> {

}
@property (strong, nonatomic) UIWindow *window;


@end

//-----

#import <UIKit/UIKit.h>

#import "AppDelegate.h"
@interface DetailController : UIViewController{
}
  @property (nonatomic,retain) AppDelegate *appDelegate;



@end

但在 ios5 AppDelegate 中从 NSObject 更改为 UIRepsonder

是否可以访问 AppDelegate?

欢迎蚂蚁评论

4

3 回答 3

9

不知道你心里有什么误解。但是我在 iOS 5 应用程序开发中使用的还是一样的。

根据您上面的评论,您说您编写了以下代码:

#import "AppDelegate.h"
@property (nonatomic,retain) AppDelegate *appDelegate;  // This line is unnecessary

您不必为 AppDelegate 类的对象创建属性。只需在要访问全局变量的 .m 文件中包含这一行:

// Create an AppDelegate variable in your MapViewScreen @interface
AppDelegate *appDelegate;

#import "AppDelegate.h"
@implementation MapViewScreen

- (void)viewDidLoad  
{
    appDelegate = [[UIApplication sharedApplication] delegate];
}

P.S.: As Michael pointed out UIResponder inherits from NSObject so you do not have to worry. Everything's the same.

于 2012-04-07T04:57:21.177 回答
4

对于 iOS 5,您无需进行任何更改。UIResponder 类继承自 NSObject。

于 2012-04-07T04:56:29.707 回答
0

是的,您可以使用与访问 appDelegate 相同的东西。

于 2012-04-07T04:37:32.260 回答