我想知道是否有一种简单的方法可以将const char与NSString
进行比较,还是我必须在执行之前将const char转换为NSString
?
我一直在浏览Apple文档,但很难找到我的问题的答案。
答案 0 :(得分:11)
无论
NSString *str = @"string";
const char *myChar = "some string";
if (strcmp(myChar, str.UTF8String))
或
[str isEqualToString:[NSString stringWithUTF8String:myChar]];
核心基础路线也是一种选择:
CFStringRef myStr = CFSTR("some chars");
bool result = CFStringCompareWithOptions(myStr, ((__bridge CFStringRef)str),CFRangeMake(0,CFStringGetLength(myStr)), kCFCompareCaseInsensitive);
答案 1 :(得分:4)
更好的是:
[str isEqualToString: @(myChar) ];
这并不比演员更糟糕,因为这些类型是不可通约的,所以你必然需要。
答案 2 :(得分:0)
您正在比较两种不同的东西,因此您必须将一种转换为另一种。你转换的方式取决于你。