写入长值到文件 Objective-C 时出错



我正在尝试在我的桌面上创建 9 个文本文件,这些文件由 for 循环中的变量i命名。在每个文本文件中,我想写入一个由我的bigInt函数确定的长值。然后,必须在文件中写入 long 值 1000 次,然后才能移动到下一个文本文件。 但是我不断收到错误:Incompatible pointer types sending 'NSString*' to parameter of type 'NSData*'

我的职能:

long bigInt(int i){
    long big = 99*(i*99);
    long evenBigger = big*(big*(big*big));
    return evenBigger;
}

我的主要方法:

long use;
int x = 0;
for (int i = 1; i<10; i++) {
    while (x < 1000) {
        use = bigInt(i);
        //[NSString stringWithFormat:@"%ld", use];
        //NSString *content = @"Text to write to file";
        NSString *path = [NSString stringWithFormat: @ "/Users/ou_snaaksie/Desktop/%i.txt", i];
        //NSData *fileContents = [use dataUsingEncoding:NSUTF8StringEncoding];
        [[NSFileManager defaultManager] createFileAtPath:path contents:[NSString stringWithFormat:@"%ld", use] attributes:nil];
        x++;
    }

}

我认为您需要在方法中传递 NSData 而不是 NSString 对象来contents createFileAtPath:contents:attributes:或者您可以执行以下操作:

if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {
    [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
}
[[string dataUsingEncoding:NSUTF8StringEncoding] writeToFile:path atomically:YES];

当字符串需要 NSData 时,您将字符串作为内容传递。您必须将字符串转换为 NSData。在 while 循环的正文中尝试此操作:

use = bigInt(i);
NSString* str = [NSString stringWithFormat:@"%ld", use];
NSData* data_contents = [str dataUsingEncoding:NSUTF8StringEncoding];
NSString *path = [NSString stringWithFormat: @ "/tmp/%i.txt", i];
[data_contents writeToFile:path atomically:YES];
x++;

相关内容

  • 没有找到相关文章

最新更新