Tôi có một Singleton thiết lập như thế này:Sử dụng Singleton trong giao diện Builder?
static Universe *instance;
+ (Universe *)instance { return instance; }
+ (void)initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
instance = [[Universe alloc] init];
}
}
- (id) init
{
self = [super init];
if (self != nil) {
self.showHistory = YES;
}
return self;
}
nhưng bây giờ tôi nhận ra rằng tôi muốn nhanh chóng nó từ giao diện Builder. Tôi đã nghĩ đến việc chỉ cần cắt phương thức init
như vậy
if (instance)
return instance;
đây có phải là một ý tưởng tồi không? Tôi muốn IB chọn trường hợp đã được tạo trong phương thức +initialize
.
Đây là những gì tôi đã làm để triển khai phiên bản plugin của một số mã máy khách nối mạng ban đầu trong ứng dụng Cocoa. Một đồng nghiệp muốn nó trong một plugin vì vậy tôi đã đi các tuyến đường singleton vì vậy chỉ có một ví dụ thực tế của khách hàng mạng (nội bộ). – ExitToShell
@invariant, tuyệt vời trả lời các loại mà làm cho tôi vui mừng khi đã đặt câu hỏi và không chỉ loại bỏ nó như câm. –
'+ alloc' sẽ trả về' [[self instance] retain] ', vì' alloc' trả về một đối tượng sở hữu. –