Ich bin verwirrt darüber, wie geteilte Instanz zu verwenden.Gemeinsame Instanz nicht verstanden
Das ist mein ein:
+ (ViewController *)sharedInstance {
static ViewController *_sharedInstance = nil;
if (_sharedInstance == nil) {
_sharedInstance = [[ViewController alloc] init];
}
return _sharedInstance;
}
Ich habe eine Eigenschaft in der ViewController.h
Datei namens @property (nonatomic, retain) CBPeripheral * selectedPeripheral;
und unter der Schnittstelle in der ViewController.m
Datei CBPeripheral * _selectedPeripheral;
und ich sicherstellen, dass zu synthesize them
Also, wenn Ich tue das. Es klappt.
[ViewController sharedInstance].selectedPeripheral = _selectedPeripheral;
NSLog(@"_sharedInstance %@", [[ViewController sharedInstance] selectedPeripheral]);
Aber wenn ich das tue? Ohne die obige Zeile zu machen. Es gibt null zurück? Ich dachte, die Synthese würde es so machen, dass ich es nicht wieder zuweisen muss?
NSLog(@"_sharedInstance %@", [[ViewController sharedInstance] selectedPeripheral]);
"und ich stelle sicher, sie zu synthetisieren" was genau bedeutet? Wo hast du deinen "Test" -Code? – Eiko
@Eiko Ich habe '@synthesize selectedPeripheral = _selectedPeripheral;' Ich habe den Testcode in der gleichen Datei. Aber ich habe es auch in anderen Dateien versucht und beide geben null zurück. – PictureMeAndYou
Woher bekommen Sie '_selectedPeripheral'? Setzen Sie den ivar in Ihrer 'init'-Methode und haben Sie Ihre '-init'-Methode überschrieben? In welcher Datei befindet sich diese Zeile? '[ViewController sharedInstance] .selectedPeripheral = _selectedPeripheral;'? – fullofsquirrels