好的,所以我有一门课,我喜欢这样QuickNoteNotesDataController.m
QuickNoteNotesDataController *dataController = [[QuickNoteNotesDataController alloc] init];
然后我需要能够从另一个文件访问这个类的同一个实例QuickNoteDetailViewController.m
如何在不再次调用 alloc init 并创建新实例的情况下获得指向同一实例的指针?
好的,所以我有一门课,我喜欢这样QuickNoteNotesDataController.m
QuickNoteNotesDataController *dataController = [[QuickNoteNotesDataController alloc] init];
然后我需要能够从另一个文件访问这个类的同一个实例QuickNoteDetailViewController.m
如何在不再次调用 alloc init 并创建新实例的情况下获得指向同一实例的指针?
来自其他类的相同实例:您需要创建一个共享实例。
或为此的静态属性。
但不要一起去extern variable
。
如果您只需要一个实例,则可以使用单例:
//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 设置为属性。
您可以将您的 QuickNoteNotesDataController 类设为 Singleton,然后您可以在整个应用程序中共享此类的单个实例。