小编Kur*_*rbz的帖子

NSUserDefaults的内存问题

我花了好几个小时试图让我的项目工作,但我无法让它工作.

基本上,我正在尝试使用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)

memory iphone xcode exc-bad-access nsuserdefaults

1
推荐指数
1
解决办法
1391
查看次数

标签 统计

exc-bad-access ×1

iphone ×1

memory ×1

nsuserdefaults ×1

xcode ×1