当我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;有人能解释这种奇怪的行为是从哪里来的吗?
谢谢-Code
编辑
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(@"Processing Value:%@",currentElementValue);仍然换行符显示'm3u8‘currentElementValue中包含的内容
谢谢-Code
发布于 2011-01-13 13:38:46
您可能希望尝试使用isEqualToString:之类的东西进行文字比较。当然,还有更高级的选项,它们引入了区域设置、折射率、不区分大小写等参数--这取决于您需要什么。
发布于 2011-01-13 12:28:58
尝试通过以下方式比较字符串
if ([aRadio.streamType caseInsensitiveCompare:@"m3u8"] == NSOrderedSame)https://stackoverflow.com/questions/4676379
复制相似问题