0

技巧.h 文件

#import "Tricks.h"

@implementation Tricks

static NSMutableArray *trickList = nil;

+(NSMutableArray *)trickList
{
    if(!trickList){
        trickList = [[NSMutableArray alloc]init];

    }
    return trickList;
}

@end

技巧.m 文件

@interface Tricks : NSObject

@property(strong, nonatomic) NSString *trickName;

将对象添加到数组的方法

-(IBAction)saveAction:(id)sender
{

    Tricks *trick = [[Tricks alloc]init];
    trick.trickName = self.trickLabel.text;
    [[Tricks trickList]insertObject:trick atIndex:0];
    [self.navigationController popViewControllerAnimated:YES];
}

在 UITabelview 类的 .h 文件中,我引用了技巧类,但我确信这一行有错误。

@property (strong, nonatomic) Tricks *tricks;

在 cellForRow 方法中,我正在存储数据

_trick = [[NSMutableDictionary alloc]initWithObjectsAndKeys:trick,nil];
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setObject:_trick forKey:@"numberArray"];
[defaults synchronize];
NSLog(@"%@",_trick);

在 viewDidLoad 的 UITableview 的 .m 类中,我想检索数据

if([[NSUserDefaults standardUserDefaults] objectForKey:@"numberArray"] != nil) {
        _tricks = [[NSUserDefaults standardUserDefaults] objectForKey:@"numberArray"];

    }
4

2 回答 2

1

您正在丢失所有数据,因为您正在尝试保存 TricksNSObject并且在您的应用程序被杀死时被破坏,它在应用程序运行时工作并且您创建NSUserDefaults更好的不要将其保存为 Tricks 对象,而是可以存储您的data as NSDictionary,或者NSStringNSUserDefaults 可以存储的数据,当你想使用它时,你可以Trick使用你保存的NSDictionary数据创建对象。

编辑 只有 NSData、NSString、NSNumber、NSDate、NSArray 或 NSDictionary 可以使用 NSUserDefaults 存储

于 2013-11-11T15:33:37.220 回答
0

添加一个方法来Tricks返回一个NSUserDefaults可以归档的对象和一个将从该对象恢复的方法。好的候选对象是NSArrayor NSDictionary

也许更好的是,不太了解Tricks,添加方法Tricks来保存和恢复到NSUserDefaults上面的对象。

如果Tricks有大量信息,请考虑NSCoding保存并恢复到应用程序Documents目录中的文件。

于 2013-11-11T17:30:39.183 回答