首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSString isEqualToString:不工作。为什么?

NSString isEqualToString:不工作。为什么?
EN

Stack Overflow用户
提问于 2010-08-28 03:39:33
回答 2查看 3.3K关注 0票数 1

我使用以下命令创建NSString:

代码语言:javascript
运行
复制
NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:sizeof(someBuffer) encoding:NSASCIIStringEncoding];

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

如果是这样的话,为什么会失败呢?

代码语言:javascript
运行
复制
NSString *helloString = @"Hello"

BOOL check = [myString isEqualToString:helloString];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-28 03:44:51

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

代码语言:javascript
运行
复制
NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:strlen(someBuffer) encoding:NSASCIIStringEncoding];

这假设缓冲区中存在一个以null结尾的C字符串。

票数 6
EN

Stack Overflow用户

发布于 2010-08-28 03:43:22

在调用NSLog()时,可能有一些尾随字符是看不到的。例如:空格、换行符甚至“\0”字符。

检查myString length是否返回5。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3587585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档