问题是,你试图在哪里保存这个值?您没有文件可将此值存储在应用程序内的 Documents 目录中。
您可以在应用程序中保存任何值,但您必须使用文件进行存储和读取,或者通过服务器上的 URL 保存和加载。像file.plist、SqlLight、json和MySql。
所以第一个简单的保存是在你的应用程序中使用一个文件.plist
,在 AppDelegate.m 下你必须检查你的目录是否存在文件并复制到 Documents 目录(唯一的可写文件夹)中,但之后你必须学习如何使用Dictionary
,MutableDictionary
和其他一些类加载并保存在同一个文件上。我可以帮助您了解第一步,例如检查并创建一个 .plist、读取和第一个要保存的基础,但其他事情是代码太多,你必须观看其他教程。
所以创建一个 .plist 文件并像这样更改结构:
更改键有你想要的,但请记住字典包含更多字符串值,如果你想添加更多项目,你必须在同一个根数组中添加其他行。
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];
好的,现在您首先检查文件是否存在于文档文件夹中,如果为假,则应用程序创建一个新文件。
现在这里是在您的应用程序中读取新文件的标准代码:
在你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];
}
好的,我希望这可以帮助您开始了解如何在应用程序上保存数据,如果是,请投票;)