我对如何使用共享实例感到困惑。
这是我的设置:
+ (ViewController *)sharedInstance {
static ViewController *_sharedInstance = nil;
if (_sharedInstance == nil) {
_sharedInstance = [[ViewController alloc] init];
}
return _sharedInstance;
}
我在ViewController.h
文件中也有一个名为的属性
@property (nonatomic, retain) CBPeripheral * selectedPeripheral;
并在ViewController.m
文件CBPeripheral * _selectedPeripheral;
的界面下,我确保synthesize them
所以,每当我这样做。它有效。
[ViewController sharedInstance].selectedPeripheral = _selectedPeripheral;
NSLog(@"_sharedInstance %@", [[ViewController sharedInstance] selectedPeripheral]);
但如果我这样做?没有做上面的行。它返回null? 我认为合成会成功,所以我不必再分配它?
NSLog(@"_sharedInstance %@", [[ViewController sharedInstance] selectedPeripheral]);
答案 0 :(得分:0)
您没有为_selectedPeripheral
分配任何值,因此没有任何价值。
尝试在单例初始值设定项中设置_selectedPeripheral
。
我对代码一无所知,但这意味着需要选择一些内容。您的选择代码中也可能存在问题,但是您的课程不会因为它是单身而神奇地创建对象; - )
修改强>
@synthesize
仅创建实例变量(下划线),因此可以从类中获取。请注意,只有在覆盖getter和setter时才需要这样做。
另请注意,您发布了单身人士的getter并且您遇到了属性问题。请提供我们需要的代码,以便在不猜测的情况下帮助您。