Правильно, я получил этот код ниже, который будет сохранять целое число при нажатии кнопки «Сохранить» и закрытии приложения, однако мне нужно, чтобы это делалось автоматически … как мне это сделать с ios? совершенно новый для всего, что кодирование яблок, так что любая помощь приветствуется
-(IBAction)SaveNumber:(id)sender{
[[NSUserDefaults standardUserDefaults] setInteger:Number forKey:@"savenumber"];
}
- (void)viewDidLoad {
Number = [[NSUserDefaults standardUserDefaults] integerForKey:@"savenumber"];
ShowSavedNumber.Text = [NSString stringWithFormat:@"%i",Number];
[super viewDidLoad];
}
Проблема в том, где вы пытаетесь сохранить это значение? у вас нет файла для хранения этого значения в каталоге документов внутри приложения.
Вы можете сохранить любое значение в вашем приложении, но вы должны использовать файл для хранения и чтения или сохранения и загрузки через URL на вашем сервере. Как файл.plist, SqlLight, JSON с MySql.
Итак, первое простое сохранение — использование файла .plist
внутри вашего приложения, в AppDelegate.m вы должны проверить каталог, если файл существует, и скопировать его в каталог документов (единственная доступная для записи папка), но после этого вы должны научиться загружать и сохранять один и тот же файл, используя Dictionary
, MutableDictionary
и какой-то другой класс. Я могу помочь вам разобраться с первыми шагами, такими как проверка, и создать .plist, read и первую базу для сохранения, но, кроме всего прочего, слишком много кода, и yopu придется смотреть другие учебники.
Поэтому создайте файл .plist и измените структуру следующим образом:
Изменить ключ вы хотите, но помните, что словарь содержит больше строковых значений, если вы хотите добавить больше элементов, вы должны добавить другую строку в том же самом Root Array.
Root = Array
Item0 > some string with value
Item1 > some string with value
Теперь вы должны скопировать этот файл внутри доступной для записи папки Documents при запуске приложения, поэтому внутри вашего AppDelegate.m
создать функцию:
- (void)createPlistFile{
NSError *error;
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"yourFile.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"yourFile" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath: path error:&error];
}
}
Под - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
добавить звонок: [self createPlistFile];
Хорошо, теперь у вас есть Сначала проверьте, существует ли файл в папке с документами, и если false, приложение создаст новый файл.
Теперь вот стандартный код для чтения нового файла внутри вашего приложения:
в вашем ViewControlle.h
записывать:
@interface ViewController : UIViewController {
NSMutableArray *loadData;
}
@property (nonatomic, strong) NSMutableArray *loadData;
Вернись к своему ViewController.m
и писать:
@synthesize loadData;
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"yourFile.plist"];
NSMutableArray *dataDict = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
self.loadData = dataDict;
Хорошо, теперь у вас есть новый файл PLIST в каталоге документов, который корректно загружается, но теперь вам нужно сохранить, это основной метод сохранения, но для этого действительно много режима, и я не могу все здесь написать;)
- (IBAction)save:(id)sender {
NSMutableDictionary *nr2 = [[NSMutableDictionary alloc] init];
[nr2 setValue:emittente.text forKey:@"plistKey"];
[nr2 setValue:link.text forKey:@"plistKey"];
[nr2 setValue:images.text forKey:@"plistKey"];
[nr2 setValue:web.text forKey:@"plistKey"];
[YouMutableDict addObject:nr2];
[YouMutableDict writeToFile:listFav atomically:YES];
}
Хорошо, это все, что я надеюсь, это поможет вам понять, как сохранить данные в приложении, если да, пожалуйста, проголосуйте;)
Изменения, внесенные в NSUserDefaults, не сохраняются автоматически. Вы должны вызвать -synchronize для объекта NSUserDefaults для сохранения. Обычно вы хотите сделать это один раз после того, как вы выполнили все обновления, которые вы планируете выполнить (если на самом деле вам нужно сделать несколько обновлений).
Вот ссылка Apple: http://developer.apple.com/library/ios/ipad/#documentation/cocoa/reference/foundation/Classes/NSUserDefaults_Class/Reference/Reference.html