0

私はアプリを作成しており、 isEqualToString を使用して、同じであることがわかっている文字列と比較しようとしています。ただし、このコードは機能しません

- (void)uui {
    array2 = [NSMutableArray arrayWithContentsOfFile:Path2];
    string = [NSString stringWithFormat:@"%@", [array2 objectAtIndex:3]];
    NSString *string2 = [NSString stringWithFormat:@"Partly Cloudy"];
    NSLog(@"%@ , %@", string, string2);
    if ([string isEqualToString:string2]) {
        NSLog(@"frack");
    }
}

これは私がログに記録するものです

2013-01-02 23:13:27.512 My Sky[3788:907] Partly Cloudy  , Partly Cloudy

ご覧のとおり、それらは同じです。ここで何が間違っていますか?

4

1 に答える 1

10

いいえ、文字列は等しくありません。ログから:

Partly Cloudy  , Partly Cloudy

最初の文字列の後に余分なスペースがあります。このコードで確認してください:

- (void)uui
{
  array2 = [NSMutableArray arrayWithContentsOfFile:Path2];
  string = (NSString *)[array2 objectAtIndex:3];
  NSString *string2 = @"Partly Cloudy";  
  NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
  NSLog(@"%@ , %@", trimmedString, string2);
   if ([trimmedString isEqualToString:string2])
   {
     NSLog(@"frack");
   }
}
于 2013-01-03T04:19:56.560 に答える