使用Objective C从文件中读取字符串

Eri*_*tto 2 string cocoa file objective-c

这个很奇怪.希望我会问正确的问题:

我正在使用md5方法创建校验和值,然后我将其写入文件.然后我用这个读取文件:

NSString * id_From_File = [[NSString alloc]
                                  initWithContentsOfFile:path_to_ID
                                  encoding:NSUTF8StringEncoding
                                  error:&error];
Run Code Online (Sandbox Code Playgroud)

结果放在NSString中,当我打印时给我非常奇怪的行为.例如,当我使用它来打印时,

id_with_date = [NSString stringWithFormat:@"  %@  %@", dateString, id_From_File];
Run Code Online (Sandbox Code Playgroud)

如果在第一个参数中放置dateString而在第二个参数中放置id_From_File,它将打印两个字符串.如果我切换它们(我需要做),只有id_From_File显示.

编辑1:开关示例:

id_with_date = [NSString stringWithFormat:@" %@  %@", id_From_File, dateString];
Run Code Online (Sandbox Code Playgroud)

我坚信这与id_From_File字符串的编码有关.

任何知识!?

谢谢,

Max*_*ann 10

NSString实际上应该能够将空字符识别为文件结尾.您是否尝试使用其他方法加载字符串.我会选择这个:

- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)

此方法自动检测文件的编码,而不是使用固定的编码对其进行解码.