Tricks.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中的.m类UITableview我想检索数据
if([[NSUserDefaults standardUserDefaults] objectForKey:@"numberArray"] != nil) {
_tricks = [[NSUserDefaults standardUserDefaults] objectForKey:@"numberArray"];
}
答案 0 :(得分:1)
你正在丢失所有数据,因为你试图保存那些NSObject
的技巧并在你的应用程序被杀时被销毁,它在应用程序运行时有效并且你创建了NSUserDefaults
更好的数据不要将其保存为Tricks对象,而是将数据存储为NSDictionary
或NSUserDefaults可以存储的NSString
,并且当您想要使用它时,可以使用Trick
对象创建您保存的NSDictionary
数据。
修改强> 只能使用NSUserDefaults存储NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary
答案 1 :(得分:0)
向Tricks
添加一个方法,该方法返回NSUserDefaults
可以存档的对象以及将从该对象恢复的方法。好的候选对象是NSArray
或NSDictionary
。
或许更好,对Tricks
了解不多,添加方法Tricks
以使用上述对象保存并恢复到NSUserDefaults
。
如果Tricks
有大量信息,请考虑NSCoding
并保存并恢复到应用Documents
目录中的文件。