ios - 使用 ComponentsSeparatedByString 的 Tokenizer 给出不正确的结果

标签 ios objective-c

长话短说,我正在尝试将输入字符串解析为“ token ”......

我可以完全控制 token 的放置位置,我可以使用 NSLog 并查看我的输入字符串的格式是否完全正确(甚至直到尝试 token 化之前的那一刻)。

为了讨论的目的,我正在构建一个简单的计算器,它可以理解输入,对其进行 RPN,然后我遇到的问题是标记化和评估。

无论如何,假设我的输入字符串是

55:6:+:3:+:9:3:/:-

插入“:”是为了在每个“标记”之间有目的地创建分隔符。然后我尝试做类似的事情

 NSArray *chunks = [input componentsSeparatedByString:@":"];

这总是会失败。如果我尝试“sizeof”,我在数组上始终会得到 4,即使它显然应该是 9....

想法?

最佳答案

正如我在这里测试的那样,该方法适用于您的输入。您不能使用 sizeof() 来检查 NSArray 中的元素数量。 NSArray 指针的 sizeof 为您提供指针的大小,该大小为 4 字节或 8 字节,具体取决于您使用的是 32 位还是 64 位机器。它不是 NSArray 中对象的数量。如果你想检查 NSArray 中对象的数量,请使用 count 方法。

关于ios - 使用 ComponentsSeparatedByString 的 Tokenizer 给出不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494477/

相关文章:

ios - Sprite 套件中的 UIImageView

ios - 做OCUnit,将test after build设置为yes,项目无法build成功

objective-c - 在自定义 setter 中自动修剪 NSString?

objective-c - 如何在 Xcode 5 中添加基于 ip 的 svn 存储库

ios - MonoTouch 第 3 方库适用于 4.2 但不适用于 5.0

ios - 比特币 : GoogleMaps framework not found issue

iphone - 如何使 UIView 的 subview 居中

objective-c - 强制 Product-Swift.h 更新

ios - UICollectionView 没有出现

ios - 请求/.well-known/apple-app-site-association