将Objective-C const char与NSString进行比较

时间:2013-02-28 21:20:01

标签: objective-c nsstring const-char

我想知道是否有一种简单的方法可以将const char与NSString进行比较,还是我必须在执行之前将const char转换为NSString

我一直在浏览Apple文档,但很难找到我的问题的答案。

3 个答案:

答案 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)

您正在比较两种不同的东西,因此您必须将一种转换为另一种。你转换的方式取决于你。