Iphone 在iOS 5上使用ARC过早释放对象?

Iphone 在iOS 5上使用ARC过早释放对象?,iphone,ios,automatic-ref-counting,Iphone,Ios,Automatic Ref Counting,我创建了一个包含布尔值的类AppSettings: #import <Foundation/Foundation.h> @interface AppSettings : NSObject{ bool bip10secCountdown; bool jv10secCountdown; bool jv30secAlert; bool jv1minAlert; bool jvp5minAlert; } @property bool bip10secCountdown; @prope

我创建了一个包含布尔值的类AppSettings:

#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
然后我尝试在我的主类中使用这个类,但是在viewDidLoad中初始化对象之后,当我想再次使用它时,它显示为null。。所以我想它发布得太早了。我使用的是ARC,所以我不会手动管理内存。我做错什么了吗

主类中的声明:

AppSettings *appSettings;


}

@property(nonatomic)bool activated;
@property (nonatomic, strong) AppSettings *appSettings;
以及实施:

#import "AppSettings.h"

@implementation AppSettings

@synthesize bip10secCountdown, jv10secCountdown, jv30secAlert, jv1minAlert, jv5minAlert;


- (id)init
{
    self = [super init];
    if (self){
    }
    return self;

}

@end
@synthetize appSettings
...
- (void)viewDidLoad
{
    // Initialize the model
    self.appSettings = [[AppSettings alloc]init];

NSLog(@"appSettings = %@",self.appSettings);
第一个输出正常。 但是当我尝试从主类中的另一个方法访问appSettings时,appSettings为(null)


感谢您的帮助。

视图很可能已卸载,或者视图控制器已释放。尝试将初始化代码移动到启动视图控制器的方法(-(id)initWithNibName:bundle:)

而不是:

@property (nonatomic, strong) AppSettings *appSettings;
尝试:


我建议将您的
AppSettings
设置为一个单例类。

当您在AppDelegate中初始化视图控制器时,我想您指的是MyViewController*视图=[[MyViewController alloc]init];或者类似的。这将是您的第一个视图,您应该在MyViewController的viewDidLoad中初始化AppSettings,而不是AppDelegate

demon9733关于将AppSettings设置为singleton的建议很好,因为您可以从应用程序中的任何位置轻松访问您的设置


还要验证ARC是否用于MyViewController(或任何可能的功能)

您好,谢谢您的回答,我尝试过这样做(我的视图控制器是在AppDeltage中启动的),但行为仍然相同..您好,谢谢您的回答。我尝试过,但没有解决问题。然后尝试将
viewDidLoad
内容移动到
init
loadView
。再说一遍。将
AppSetting
设置为单例。这将是工作:)你所指的另一个方法(在主类中)是什么?此错误通常是由于在加载视图之前尝试访问在viewDidLoad中初始化的详细信息而导致的。
@property (nonatomic, retain) AppSettings *appSettings;