Ios 将数据存储在tableview中以使用默认值
技巧.h文件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
#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
,它是有缺陷的。