gpt4 book ai didi

ios - 从应用程序写入 csv,Cocoa 错误 513

转载 作者:行者123 更新时间:2023-11-29 01:53:28 26 4
gpt4 key购买 nike

我正在创建一个写入 CSV 文件的 iPhone 应用程序。看起来最简单的方法是从数组添加到 NSMutableString。我拥有的代码应该可以正常工作,但我会不断收到 Cocoa 错误 513

代码是:

NSArray *firstArray=[NSArray arrayWithObjects:@"A",@"b",nil];
NSMutableString *csv = [NSMutableString stringWithString:@"Strings"];

NSUInteger count = [firstArray count];
for (NSUInteger i=0; i<count; i++ ) {
[csv appendFormat:@"\n %@",
[firstArray objectAtIndex:i]
];
}

NSString *yourFileName = @"leads.csv";
NSError *error;
BOOL res = [csv writeToFile:yourFileName atomically:YES encoding:NSUTF8StringEncoding error:&error];

if (!res) {
NSLog(@"Error %@ while writing to file %@", [error localizedDescription], yourFileName );
}

非常感谢!

最佳答案

这很可能是因为您正在写入您没有写入权限的文件位置。

Cocoa 错误 513 转换为错误 NSFileWriteNoPermissionError。

通常,当有人试图写入应用程序包中的文件时,就会发生这种情况。您不能修改已编译应用程序的捆绑文件夹的内容。这是因为 bundle 是经过签名、编译的应用程序。

当您最终通过 iTunes App Store 分发该应用程序时,该应用程序将具有一个数字签名来验证该应用程序的内容。此签名在编译时生成,一旦签名,Apple 不希望任何人篡改内容。

确保您正在写入适当的位置,例如 DocumentsTempCache,使用如下内容:

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"subFolder"];
NSString *filePath = [dataPath stringByAppendingPathComponent:@"fileName.csv"];


if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
{
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder
}

BOOL res = [csv writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

if (!res) {
NSLog(@"Error %@ while writing to file %@", [error localizedDescription], yourFileName );
}

这些文件夹只能由您的应用程序访问。没有其他应用程序可以访问这些文件夹的内容。 (同样,您的应用无法访问其他应用的文件夹。)

关于ios - 从应用程序写入 csv,Cocoa 错误 513,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31146664/

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