我正面临着一个奇怪的UTF8String问题
parentMode = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
…
if(parentMode != @"Sleep")
{
NSLog(@"%s", [parentMode UTF8String]);
}我的问题是:
为什么我要做这个转换才能记录parentMode
Sleep。那么,如果是这样的话,这是怎么做到的呢?发布于 2011-09-12 08:48:14
不能使用普通关系运算符比较字符串,必须使用:
if (![parentMode isEqualToString:@"Sleep"])
{
NSLog (@"%@", parentMode);
}但是,在使用该方法之前,您可能需要检查parentMode不是nil。不需要使用UTF8String方法,可以直接使用%@格式说明符记录字符串。如果这不起作用,那么在您提供的代码中遗漏了一些非常重要的内容。
发布于 2011-09-12 08:36:58
要记录字符串,可以编写:
NSLog(@"%@", parentMode);使用%@占位符,不需要将其转换回UTF-8。
这可能也解释了if语句工作的原因。
更新:
应该将字符串与isEqualToString:进行比较。
[parentMode isEqualToString: @"Sleep"]发布于 2011-09-12 09:18:48
如果要比较整数,那么在比较字符串时必须使用语法(无论您在post.But中使用什么),请使用下面的语法。
if (![parentMode isEqualToString:@"Sleep"])
{
NSLog (@"%@", parentMode);
}https://stackoverflow.com/questions/7384994
复制相似问题