NSString isEqualToString:不起作用.为什么?

Dav*_*vid 1 cocoa nsstring

我使用创建一个NSString,

NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:sizeof(someBuffer) encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

我使用NSLog输出myString,它显示"Hello".

如果是这种情况,那么为什么会失败.

NSString *helloString = @"Hello"

BOOL check = [myString isEqualToString:helloString];
Run Code Online (Sandbox Code Playgroud)

Ben*_*ieb 6

你的myString变量实际上是一个长度为64的NSString; 其他字符可能未定义.你最想做的是这个:

NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:strlen(someBuffer) encoding:NSASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

假设缓冲区中存在以null结尾的C字符串.