2015-10-16 87 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