gpt4 book ai didi

iPhone - 不会将数组保存到 iPhone 上的 plist

转载 作者:行者123 更新时间:2023-11-29 13:45:36 26 4
gpt4 key购买 nike

我正在尝试将一个数组保存到我的 iphone 上的 .plist 文件中,但它不会保存到它。当我在模拟器上尝试时,它起作用了。但是当我在 iphone 上运行它时,它不起作用。我检查设备上是否存在该文件,它确实存在,我可以从文件中读取数据,但不会写入。这是我将数据添加到 .plist 文件时的代码。



//对数组进行排序
[自排序数组];

NSString *sString = [[NSString alloc] initWithFormat:@"Schema%i", currentIndex];
NSString *daPath = [[NSBundle mainBundle] pathForResource:sString ofType:@"plist"];
NSLog(@"路径: %@", daPath);

//检查文件是否存在
bool 存在;
NSFileManager *fileManager = [NSFileManager defaultManager];
存在 = [fileManager fileExistsAtPath:daPath];
如果(!存在)
NSLog(@"路径 %@ 不存在", daPath);
别的
NSLog(@"PATH %@ DO EXIST!!", daPath);

//写出数组以检查它是否有任何元素
for (int i = 0; i < [itemsArray count]; i++)
NSLog(@"%i: %@", i, [(NSMutableArray*)[itemsArray objectAtIndex:i] objectAtIndex:0]);

//将数组写入.plist
[itemsArray writeToFile:daPath atomically:YES];

//获取.plist文件
NSMutableArray *tmpA2 = [[NSMutableArray alloc] initWithContentsOfFile:daPath];

//检查添加的新元素是否存在。
for (int i = 0; i < [tmpA2 count]; i++)
NSLog(@"FILE: %i: %@", i, [(NSMutableArray*)[tmpA2 objectAtIndex:i] objectAtIndex:0]);

[sString 释放];
[itemsArray 释放];
字符串 = 无;
itemsArray = 无;

有谁知道为什么它不起作用?

最佳答案

您不能写入应用程序包,您需要写入应用程序的文档目录。

NSString *fileName = @"fileName";
NSArray *searchPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectoryPath = [searchPath objectAtIndex:0];
NSString *filePath = [documentDirectoryPath stringByAppendingPathComponent:fileName];

如果app bundle中的某个文件在启动时有初始数据,如果不存在则复制到document目录下,然后可以读取、修改和写入。

关于iPhone - 不会将数组保存到 iPhone 上的 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com