2015-10-16 2 views
-2

Так что мой общий экземпляр объекта продолжает возвращать нуль.Общий экземпляр не установлен правильно

ViewController.h

У меня есть свойство @property (nonatomic) BOOL isConnected;

ViewController.m

@interface ViewController() { 
    BOOL _isConnected; 
} 
@synthesize isConnected = _isConnected; 


-(void)bleDidConnectPeripheral : (CBPeripheral *)aPeripheral{ 
    _isConnected = TRUE; 
} 

Я знаю, что bleDidConnect вызывается, так как я вошел ее.

ViewControllerTwo.m

NSLog([[ViewController sharedInstance] isConnected] ? @"TRUE" : @"FALSE"); 

держит возвращение ложным, если я не установлен _isConnected = TRUE в инициализации из ViewController.m

+0

Does '[ViewController sharedInstance]' возвращает значение, отличное от нуля? –

+0

По какой-то причине вы удалили свой предыдущий и связанный с этим вопрос. Код, который вы отправили, не предназначен для синглета. Покажите более подходящий код в своем вопросе. – rmaddy

+0

вы никогда не должны, никогда, никогда не делайте свои контроллеры представлений одиночным тоном – Lance

ответ

0

Чтение из комментариев. Я чувствую, что вы перепутали и запутались. (Вот почему я презираю StackOverflow, потому что люди просто CTRL + C & Ctrl + P, но побоище не делает ничего хорошего либо)

Глядя из вашего кода _isConnected = TRUE создается внутри этого класса, но при попытке для доступа к нему снаружи она установлена ​​False

Попробуйте заменить _isConnected с [ViewController sharedInstance].isConnected = TRUE

И попробуйте вызвать его в другом классе.

Надеюсь, вы узнаете, почему это работает, а другим - нет. На самом деле попытайтесь понять, что происходит! Это красота кодирования.

+0

Плохой совет предложить обновить метод 'bleDidConnectPeripheral', чтобы обновить общий экземпляр вместо« self ». – rmaddy

Смежные вопросы