我试图在for
循环中的变量i
命名的桌面上创建9个文本文件。在每个文本文件中,我想写一个由我的bigInt
函数确定的长整型值。在移动到下一个文本文件之前,必须将该长整型值写入文件1000次。不过,我不断收到错误:Incompatible pointer types sending 'NSString*' to parameter of type 'NSData*'
写入长文件时出错的错误Objective-C
我的功能:
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++;
}
}
符号整数arithemetic在while循环的身体试试这个不保证“环绕”,事实上,溢出有符号整数类型会导致未定义的行为。 – dreamlax
“但我不断收到错误:向'NSData *'类型的参数发送'NSString *'的指针类型不兼容。呃,也许这是因为你没有阅读'createFileAtPath'的规范? –
我做过了,但就像我说过的我是Objective-C的新手,并不明白如何将方法添加到对象。例如:我会说'dataContents.writeToFile()' –