Objective c NSString搜索子字符串/csv文件IO

Objective c NSString搜索子字符串/csv文件IO,objective-c,ios,file-io,if-statement,substring,Objective C,Ios,File Io,If Statement,Substring,这让我很头疼。无论出于何种原因,当我使用此代码时,if语句的计算结果始终为false: while(!feof(file)) { NSString *line = [self readNSString:file]; NSLog(@"%@", line); NSLog(@"%@", search); NSRange textRange; textRange =[line rangeOfString:search]; if(textRange.loc

这让我很头疼。无论出于何种原因,当我使用此代码时,if语句的计算结果始终为false:

while(!feof(file))
{
    NSString *line = [self readNSString:file];
    NSLog(@"%@", line);
    NSLog(@"%@", search);
    NSRange textRange;
    textRange =[line rangeOfString:search];

    if(textRange.location != NSNotFound)
    {
        NSString *result = [line substringFromIndex:NSMaxRange([line rangeOfString:search])];
        resultView.text = result;
    }
    else
    {
        resultView.text = @"Not found";
    }
}
当函数执行时,两个nslog告诉我“line”和“search”字符串应该是什么,那么为什么if语句的计算结果总是为false呢?我一定错过了一些简单的东西,再多看一眼就好了。谢谢

编辑:(函数“readNSString”)

编辑2:

通过调用第一个函数设置搜索,并使用NSString*变量作为参数,如下所示:

NSString *textFieldText = [[NSString alloc]
                              initWithFormat:@"%@", textField.text];

[self readFile:textFieldText];
编辑3(NSLogs输出)

线路:德国意大利法国


搜索:Italy

我认为您正确地使用了
rangeOfString
NSNotFound
等,因此问题可能与使用
appendFormat:@“%s”从文件读取的数据创建字符串有关

我怀疑您的两种字符串格式之间可能存在编码问题-我将调查“%s”是否使用适当的编码将以null结尾的C字符串正确编码为与unicode
NSString
相同的格式


尝试将您从
readNSString
函数中获得的值编码为代码中的字符串文字,仅用于测试,并查看比较是否有效,如果有效,这可能表明这可能与文件中创建的字符串的编码有关。

您想做什么?阅读CSV文件?你能说明如何设置“搜索”吗?您看到了什么来确保它设置为应该设置的值?搜索是通过将文本字段的文本指定给nsstring来设置的。我发布的第一个函数中的NSLog显示了我在函数运行时发送给它的编号。您可以显示NSLog输出吗?是的,显示这两个NSLog的输出。
NSString *textFieldText = [[NSString alloc]
                              initWithFormat:@"%@", textField.text];

[self readFile:textFieldText];