Tôi có một lớp cơ sở Store
với nhiều phương pháp mà tất cả các cửa hàng kế thừa. Mỗi cửa hàng là một singleton. Ngay bây giờ, mỗi cửa hàng định nghĩa riêng gần như giống hệt phương pháp của nó:Mục tiêu-C - bộ khởi tạo đơn động động?
+ (Store *)instance {
static SubStore *store = nil;
if (!store) {
store = (SubStore *) [[super allocWithZone:nil] init];
[store setupDefaults];
}
return store;
}
Có cách nào đưa ra một phương pháp singleton trong một cách mà phương pháp này chỉ có thể được bổ sung vào lớp cơ sở và được thừa kế bởi các lớp con?
Tôi đã thử và không bao giờ tìm được cách. Ngoài ra, để an toàn cho luồng, bạn nên sử dụng khối 'dispatch_once' thay vì' if (! Store) '. – Kevin
Tôi đã theo dõi mã sách. Tôi sẽ xem xét dispatch_once. –