这个C代码的Objective-C中的等价物是什么:
FILE* file = fopen( [filePath UTF8String], "r, ccs=UTF-8");
if (file != 0)
{
char buffer[1024];
//seek to file position....
fseek(file,11093, SEEK_CUR);
int cnt = 0;
while(fgets(buffer, 1024, file) != NULL)
{
if (cnt>0) {
if(buffer[0] == 'a') {
break;
}
//Objective c syntax....
NSString *string = [[NSString alloc] initWithCString: buffer];
}
cnt++;
}
fclose(file);
}
答案 0 :(得分:3)
等同于。 Objective-C建立在C之上,因此每个C函数都可以在Objective-C中使用。
有一个以NSStream
为根的类层次结构,乍一看,它似乎可能是文件流的Objective-C版本 - 对于许多用途,它是。但是,如果您需要搜索任意流,则需要继续使用fopen()
,fseek()
等。
通过获取/设置其NSInputStream
属性,可以查找从磁盘上的文件路径创建的NSStreamFileCurrentOffsetKey
实例。但是,调整现有的基于FILE *
的代码通常很不方便。
我想我所说的是,如果fopen()
适用于您,则无需停止使用它。 :)