2015-10-16 48 views
-2

所以我的共享實例對象不斷返回nil。未正確設置共享實例

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"); 

保持返回false,除非我設置_isConnected =在ViewController.m

+0

'[ViewController sharedInstance]'返回一個非零值嗎? –

+0

似乎你刪除了以前的和相關的問題,出於某種原因。您發佈的代碼不適用於單身人士。在你的問題中顯示更多相關的代碼。 – rmaddy

+0

你應該永遠永遠不會讓你的視圖控制器成爲單身人士 – Lance

回答

0

的初始化從讀評論TRUE。我覺得你有很多混淆和困惑的事情。 (這就是爲什麼我鄙視計算器,因爲人們只是按Ctrl + C & Ctrl + P,但撲擊也沒有做任何好處)

從您的代碼看_isConnected = TRUE正在設置該類內,但是當您嘗試外面被設定False

試試這個代替_isConnected[ViewController sharedInstance].isConnected = TRUE

並嘗試調用它在你的其他類來訪問它。

希望你可以知道爲什麼這個工作,而另一種方式沒有。真的嘗試瞭解發生了什麼!這就是編碼的美妙之處。

+0

建議您更新'bleDidConnectPeripheral'方法來更新共享實例而不是「self」,這是個不好的建議。 – rmaddy