Ios 将数据存储在tableview中以使用默认值

Ios 将数据存储在tableview中以使用默认值,ios,objective-c,uitableview,nsuserdefaults,Ios,Objective C,Uitableview,Nsuserdefaults,技巧.h文件 #import "Tricks.h" @implementation Tricks static NSMutableArray *trickList = nil; +(NSMutableArray *)trickList { if(!trickList){ trickList = [[NSMutableArray alloc]init]; } return trickList; } @end Tricks.m文件 @interfa

技巧.h文件

#import "Tricks.h"

@implementation Tricks

static NSMutableArray *trickList = nil;

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

    }
    return trickList;
}

@end
Tricks.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文件中,我引用了tricks类,但我确信这一行有错误

@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"];

    }

您正在丢失所有数据,因为您试图保存的技巧是
NSObject
,当您的应用程序被杀死时会被销毁,它在应用程序运行时起作用,您创建
nsserdefaults
最好不要将其保存为技巧对象,而可以将数据存储为
NSDictionary
,或者NSUserDefaults可以存储的
NSString
,当您想要使用它时,可以使用保存的
NSDictionary
数据创建
Trick
对象

编辑
只有NSData、NSString、NSNumber、NSDate、NSArray或NSDictionary可以使用NSSERDEFAULTS来存储。请在
技巧中添加一个方法,该方法返回一个
NSSERDEFAULTS
可以存档的对象和一个将从该对象还原的方法。好的候选对象应该是
NSArray
NSDictionary

也许更好的方法是,不太了解
技巧
,向
技巧
添加方法,以使用上述对象保存并还原到
NSUserDefaults


<> > <代码>技巧>代码>有大量的信息,请考虑<代码> NSCODEN/<代码>,保存并恢复到App的代码>文件< /C>目录中的文件。< /P>问题是什么?你做得对。当我从运行的应用程序中删除应用程序并启动时,应用程序中没有数据table@JozefVrana您正在侦听哪个调用appWillGoToBackground:的通知?在哪里添加观察者?仍然没有保存数据我正在ViewDidLoadUpdate中存储数据,并创建了dictionary@Jozef这不会创建一个
NSDictionary
,它是有缺陷的。