0

わかりましたので、私はそのように初期化するクラスを持っていますQuickNoteNotesDataController.m

QuickNoteNotesDataController *dataController = [[QuickNoteNotesDataController alloc] init];

次に、別のファイルからこのクラスの同じインスタンスにアクセスできるようにする必要がありますQuickNoteDetailViewController.m

alloc init を再度呼び出して新しいインスタンスを作成せずに、同じインスタンスへのポインターを取得するにはどうすればよいですか?

4

3 に答える 3

1

インスタンスが 1 つだけ必要な場合は、シングルトンを使用できます。

//In QuickNoteNotesDataController.m
static QuickNoteNotesDataController *sharedInstance;
+ (id)sharedDataController {
    static dispatch_once_t predicate;
    dispatch_once(&predicate, ^{
        sharedInstance = [[QuickNoteNotesDataController alloc] init];
    });
    return sharedInstance;
}

それ以外の場合は、QuickNoteDetailViewController

@property (nonatomic, strong) QuickNoteNotesDataController *dataController

そして、detailViewController を作成するときに、既に持っている dataController をプロパティに設定します。

于 2012-12-28T10:01:58.773 に答える
1

QuickNotesDataController クラスをシングルトンとして作成すると、このクラスの単一のインスタンスをアプリ全体で共有できます。

于 2012-12-28T10:02:12.200 に答える
1

他のクラスの同じインスタンス: 共有インスタンスを作成する必要があります。

またはこれの静的プロパティ。

しかし、一緒に行かないでextern variableください。

于 2012-12-28T09:53:39.847 に答える