我使用
创建一个NSStringNSString *myString = [[NSString alloc] initWithBytes:someBuffer length:sizeof(someBuffer) encoding:NSASCIIStringEncoding];
我使用NSLog输出myString并显示“Hello”。
如果是这种情况,那么为什么会失败。
NSString *helloString = @"Hello"
BOOL check = [myString isEqualToString:helloString];
答案 0 :(得分:6)
你的myString变量实际上是一个长度为64的NSString;其他字符可能未定义。你最想做的是:
NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:strlen(someBuffer) encoding:NSASCIIStringEncoding];
这假设缓冲区中存在以空字符结尾的C字符串。
答案 1 :(得分:4)
调用NSLog()时可能看不到一些尾随字符。例如:空格,换行符甚至'\ 0'字符。
检查[myString length]以查看它是否返回5.