0

好的,所以我有一门课,我喜欢这样QuickNoteNotesDataController.m

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

然后我需要能够从另一个文件访问这个类的同一个实例QuickNoteDetailViewController.m

如何在不再次调用 alloc init 并创建新实例的情况下获得指向同一实例的指针?

4

3 回答 3

1

来自其他类的相同实例:您需要创建一个共享实例。

或为此的静态属性。

但不要一起去extern variable

于 2012-12-28T09:53:39.847 回答
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

您可以将您的 QuickNoteNotesDataController 类设为 Singleton,然后您可以在整个应用程序中共享此类的单个实例。

于 2012-12-28T10:02:12.200 回答