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];
}

PS : Michael が指摘したように、 UIResponderはNSObjectを継承しているため、心配する必要はありません。すべて同じです。

于 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 に答える