если вызван неправильный инициализатор.

могу убедиться, что пользователь не вызывает init, вместо этого клиент должен вызвать sharedSingleton, чтобы получить общий экземпляр.

@synthesize delegate;

- (id)init
{
    self = [super init];
    if (self) {
        // Initialization code here.
    }

    return self;
}

+ (LoginController *)sharedSingleton
{
    static LoginController *sharedSingleton;

    @synchronized(self)
    {
        if (!sharedSingleton)
            sharedSingleton = [[LoginController alloc] init];
        CdtMiscRegisterConnectionChangeListenerObjc(test_ConnectionChangeListenerCallback);
        return sharedSingleton;
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос