В настоящее время я пишу приложение для iPhone, и одним из требований к конструкции, мне нужно, чтобы следовать, следующие:Занесение NSMutableArray из NSObjects в NSUserDefaults
магазин NSObjects
в NSMutableArray
, отображение данных к UITableView
и сохраните данные в NSUserDefaults
. Я могу хранить NSObject
в NSMutableArray
и отображать его в UITableView
, но мне нужна помощь, чтобы понять, как хранить данные в NSObject
до NSUserDefaults
.
Мое определение NSObject (.h)
:
#import <Foundation/Foundation.h>
@interface Name : NSObject
@property (nonatomic)NSString *name;
@property (nonatomic)NSInteger score;
@end
Моя реализация NSObject (.m)
#import "Name.h"
@implementation Name
-(id)initWithName:(NSString*)name andScore:(NSInteger)score
{
_name = name;
_score= score;
return [super init];
}
@end
Это, как я хранить в моем NSObject
:
NSString *newName = _submitNameTextBox.text;
NSInteger score = 0;
Name *name = [[Name alloc] init];//Name is the object name
name.name = newName;
name.score = score;
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSMutableArray *listTemp = appDelegate.nameList; //main copy of my list is in app delegate, but i have it accessible by my uiviewcontrollers.
я добавить NSObjects
в моей secondUIViewController
, и ди перелистывайте данные в моем третьемUIViewController, в то время как мой первый - это основной экран манипуляции хранящихся данных.
Так что мой вопрос, учитывая код, я использовал, чтобы определить мой NSObject
и как я хранить указанный объект в NSMutableArray
, как я хранить NSMutableArray
в NSUserDefaults
на приложение остановов. Идея - это массив, который должен загрузить массив программ с данными из последнего прогона, чтобы пользователь мог отслеживать свои данные.
[[NSUserDefaults standardUserDefaults] setObject: self.arrayOfPDF forKey: @ ""]; [[NSUserDefaults standardUserDefaults] synchronize]; –
Вы не можете сохранять пользовательские объекты в 'NSUserDefaults'. Вам нужно сначала закодировать их в NSData. – rmaddy
Этот метод Init может не делать то, что вы думаете –