0

以前は appdelegate で variale を宣言し、すべてのクラスで共有できるようにしていました (変数が global の場合)。

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

これは、appdelegate 変数にアクセスするために通常使用しているコードです。今、ストーリー ボード アプリケーションを試していますが、うまくいきません。appdelegate を宣言すると、「不明な型名 StoryAppDelegate」というエラーが表示されます。

StoryAppDelegate*ss; 

これは使用しているコードです。

どんな助けでも大歓迎です。

4

4 に答える 4

1

アプリデリゲートを使用しないでください。それはそのためではありません。

代わりに、責任と知識を所有する特定のクラスを作成し、それをシングルトンにして、それを必要とするすべてのクラスに「sharedController」(またはあなたがそれを呼ぶもの)クラスメソッドを介してそれを取得させます。

または、静的変数または何かを含む「定数」ファイルを使用します(アプリデリゲートではありません)。

于 2013-06-25T09:30:40.973 に答える
0

循環依存のようです。

使用する@class StoryAppDelegate;

それ以外の

#import "StoryAppDelegate.h"

ヘッダーファイルで。

于 2013-06-25T09:27:55.510 に答える
0

グローバル変数のシングルトン インスタンスを使用することをお勧めします。これは、正確な状況から何度も救われたからです。シングルトンを実装するために現在使用している例を次に示します。この方法論はARCセーフでもあります

mySingleton.h

#import <Foundation/Foundation.h>

@interface mySingleton : NSObject {

}
+ (NSMutableDictionary *) myMutableDict;

@end

mySingleton.m

#import "mySingleton.h"

@implementation mySingleton

+ (NSMutableDictionary *)myMutableDict
{
    static NSMutableDictionary *singletonInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        singletonInstance = [[NSMutableDictionary alloc]init];

    });
    return singletonInstance;
}

@end

すべてのビュー コントローラに mySingleton.h を含めている限り、 経由でデータにアクセスできます[mySingleton myMutableDict]。例:[[mySingleton myMutableDict] setObject:myObject forKey:myKey];もちろん、これはどのオブジェクト タイプでも機能します。

于 2013-06-25T10:55:41.880 に答える