Ich habe eine Klasse AppSettings enthält booleans:Objekt zu früh mit ARC auf iOS 5 veröffentlicht?
#import <Foundation/Foundation.h>
@interface AppSettings : NSObject{
bool bip10secCountdown;
bool jv10secCountdown;
bool jv30secAlert;
bool jv1minAlert;
bool jvp5minAlert;
}
@property bool bip10secCountdown;
@property bool jv10secCountdown;
@property bool jv30secAlert;
@property bool jv1minAlert;
@property bool jv5minAlert;
@end
Und die Umsetzung:
#import "AppSettings.h"
@implementation AppSettings
@synthesize bip10secCountdown, jv10secCountdown, jv30secAlert, jv1minAlert, jv5minAlert;
- (id)init
{
self = [super init];
if (self){
}
return self;
}
@end
Dann versuche ich diese Klasse in meiner Hauptklasse zu verwenden, aber nach dem Objekt in der viewDidLoad Initialisierung, wenn ich es wieder verwenden möchte, erscheint es als null. Also ich denke, es ist zu früh veröffentlicht. Ich verwende ARC, sodass ich den Speicher nicht manuell verwalte. Mache ich etwas falsch ?
Die Erklärung in der Hauptklasse:
AppSettings *appSettings;
}
@property(nonatomic)bool activated;
@property (nonatomic, strong) AppSettings *appSettings;
Und die Umsetzung:
@synthetize appSettings
...
- (void)viewDidLoad
{
// Initialize the model
self.appSettings = [[AppSettings alloc]init];
NSLog(@"appSettings = %@",self.appSettings);
Die erste Ausgabe ist OK. Aber wenn ich versuche, appSettings von einer anderen Methode in der Main-Klasse zuzugreifen, ist die appSettings (null)
Vielen Dank für Ihre Hilfe.
Was ist die andere Methode (in der Hauptklasse), die Sie sich beziehen? Dieser Fehler wird u. U. dadurch verursacht, dass versucht wird, auf Details zuzugreifen, die in viewDidLoad initialisiert wurden, bevor die Ansicht geladen wird. –