我花了好几个小时试图让我的项目工作,但我无法让它工作.
基本上,我正在尝试使用NSUserDefaults来保存自定义对象,当用户点击保存按钮并在应用加载时加载所有数据.如果没有保存以前的NSUserDefault,我想设置一些默认值.最后,我在尝试加载以前保存的NSUserDefault时收到EXC_BAD_ACCESS.设置起始数据时,它在第一次加载时工作正常.问题是,当我尝试为它启用NSZombieEnabled和其他env变量时,它会在没有EXC_BAD_ACCESS的情况下以某种方式加载.所以这就是我正在使用的:
[App Delegate.h]
#import <UIKit/UIKit.h>
#import "Note.h"
@interface ToDoWallAppDelegate : NSObject <UIApplicationDelegate> {
...
Note *note;
}
...
@property (retain) Note *note;
@end
Run Code Online (Sandbox Code Playgroud)
[App Delegate.m]
- (void)applicationDidFinishLaunching:(UIApplication *)application {
...
note = [[Note alloc] init];
NSUserDefaults *stdDefaults = [NSUserDefaults standardUserDefaults];
NSData *noteData = [stdDefaults objectForKey:@"Note"];
if (noteData) {
self.note = (Note *)[NSKeyedUnarchiver unarchiveObjectWithData:noteData];
} else {
note.background = [UIImage imageNamed:@"Cork.jpg"];
note.picture = [UIImage imageNamed:@"Cork.jpg"];
note.font = [UIFont fontWithName:@"Helvetica" size:18.0f];
note.fontColor = [UIColor blackColor];
note.fontNameIndex = 9;
note.fontSizeIndex = 6; …Run Code Online (Sandbox Code Playgroud)