Когда я NSLog содержимое моей строки выводит:
m3u8
как и ожидалось. Потому что это то, что я разбираю в строке.
Позже, когда я сделаю некоторое сравнение для проверки, будет ли строка, равная m3u8, они потерпят неудачу.
NSRange match;
match = [aRadio.streamType rangeOfString: @"m3u8"];
if (match.location == NSNotFound)
{
NSLog(@" m3u8 Not MATCHED: %@",aRadio.streamType);
//break;
}
if ([aRadio.streamType compare:@"m3u8" ] == NSOrderedSame)
{
NSLog(@" m3u8 DETECTED: %@",aRadio.streamType);
}
else
{
NSLog(@"NO m3u8 DETECTED %@",aRadio.streamType);
[self createStreamer];
[streamer start];
}
NSLogs показывают, что есть совпадение с первой проверки и нет обнаружения для второй проверки.
Я ожидаю, что они оба увидят, что строка содержит m3u8, что подтверждается тем, что выводит Radio.streamType в NSLogs.
Вот как я объявил stramType
@property (nonatomic, retain) NSString *streamType;
Кто-нибудь может объяснить, откуда происходит это странное поведение?
Спасибо
-Кода
EDIT
NSLog(@"Str len: %d",[aRadio.streamType length]);
выводит 5 как длину.
Я пытаюсь урезать строку новых строк
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if(!currentElementValue)
{
currentElementValue = [[NSMutableString alloc] initWithString:string];
}
else
{
[currentElementValue appendString:string];
[currentElementValue stringByTrimmingCharactersInSet:[NSCharacterSet
newlineCharacterSet]];
[currentElementValue stringByTrimmingCharactersInSet:[NSCharacterSet
whitespaceAndNewlineCharacterSet]];
[currentElementValue stringByTrimmingCharactersInSet:[NSCharacterSet
controlCharacterSet]];
[currentElementValue stringByTrimmingCharactersInSet:[NSCharacterSet
nonBaseCharacterSet]];
NSLog(@"Processing Value: %@", currentElementValue);
}
}
но NSLog (@ "Значение обработки:% @", currentElementValue); все еще падает на новую строку, чтобы отобразить то, что содержится в currentElementValue, который является 'm3u8'
Спасибо
-Кода