问题标签 [nsscanner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
361 浏览

objective-c - 在 NSString 中查找数字节点并在其前添加下划线以修复无效的 XML

我有一个XML返回给我的字符串,有时使用数字作为节点名称是无效的,例如:<2>. 我想扫描NSString保存 XML 的整个文件,然后搜索以下内容:

然后,我想在数字前加一个下划线,以便将无效更改为有效XML,如下所示:

我想知道是否NSScanner会完成这项工作,但我不确定如何解决这个问题。现在我只是在使用stringByReplacingOccurrencesOfString:withString:,但我不得不硬编码要替换的数值,我认为这不是一个好主意。

更新:

我试了一下并使用了 NSRange。这是我想出的。它工作了大约 95%,但是在大型 xml 字符串上它会丢失最后几个</ >标签,不知道为什么。任何意见或帮助改善这一点?

0 投票
1 回答
921 浏览

iphone - NSScanner 行为

我对 iOS 开发非常陌生。我正在尝试解析一个简单的 csv 文件,该文件有大约 10 行,用逗号分隔。我正在使用下面的代码,但无法理解为什么NSScanner在解析字段(下面代码中的字段)时不会转到逗号后的下一个字符串。我必须执行该行

使它越过分隔符。但是,我不必对行做同样的事情 -NSScanner自动将位置设置为换行后的下一行。在这两种情况下,我都使用相同的方法 - [lines scanUpToCharactersFromSet:intoString] 有什么我不明白的吗?

这是我要解析的测试文件:

这是我的代码:

0 投票
2 回答
634 浏览

objective-c - 在 Obj-C 中使用 RegEx 或 NSScanner 将换行符转换为 html 项目符号

我的应用程序访问了一个糟糕的 Web 服务,该服务返回如下输出:

澄清一下,文本不是字面上...的,信息也不是字面上的编号,我只是想表明它们是不同的。

我想以这样的方式显示它UIWebView

如何使用NSRegularExpressionor来完成此操作NSScanner?我NSRegularExpression对这两者都感到困惑,因为我不知道要使用的正确表达式,而且我不确定如何访问结果以将其放置在一个整齐的格式化字符串中。

天真地,逻辑是这样的:

  1. 查找 char 0 和第一次(仅)出现之间的所有文本\n\n,并将其调整为格式@"<p><b>%@</b><ul>",matchedString
  2. 虽然仍有文本,但查找当前字符和下一次出现\n(single) 之间的所有文本并适合格式@"<li>%@</li>"
  3. 当没有\n剩余时,追加@"</ul></p>"并收工。

请告知我如何实现此逻辑,或者将其编码为正则表达式。

答案已实施

我只是想发布我临时实现的答案,以防将来有人卡住:

0 投票
2 回答
940 浏览

ios - 从 XML 提要中获取图像的更快方法

我通过来自 Wordpress 站点的 XML 提要将数据拉入 UITableView。如果帖子包含一张图片,我想用一张图片显示表格,如果没有,我想显示一张默认图片。所以在我的

方法,我有一个看起来像这样的 if 语句:

这会调用 getFirstImageURL,如下所示:

一切正常,但加载表大约需要 5 到 6 秒,有时可能需要长达 10 秒,这是不可取的。我想知道我是否可以做些什么来加快抓取第一张照片的过程。

更新

因此,经过更多调查,我看到的瓶颈似乎与我下载图像无关。事实上,图像的实际下载持续时间不超过 2 秒。当我下载 RSS 提要时,似乎出现了瓶颈:

这始终需要最长的时间。

在分配我的数据对象之后,我立即获取数据进行解析。所以我想我最初的问题不再有效,我可能应该问是否有更快的方法来获取初始数据进行解析,或者我是否应该更改我的模型并尝试使用 json 或其他东西?

0 投票
4 回答
4496 浏览

objective-c - 使用 NSScanner 进行高效的 NSString 解析

首先,我正在编写一个 iOS 5 应用程序。例如,假设我有以下字符串:

我想以最有效(和代码优雅)的方式从这个字符串中提取两个道路名称。我已经尝试过使用[string componentsSeparatedByString...]等的组合,但这变得非常混乱,非常快。此外,它需要大量的条件语句来处理如下情况:

[string componentsSeparatedByString:@"-"]因为它包含一个嵌套的连字符,如果我们正在使用并且需要重新组装,它将被拆分。

在某些情况下,字符串的格式可能略有不同,例如:

(数字和连字符之间没有空格)

(数字周围完全没有空格,斜线和第二个道路名称之间没有空格)

但是,我们总是可以假设字符串中只有一个斜杠来分隔两个道路名称。

道路名称​​也应该去掉任何前导和尾随空格。

我认为使用 an 可以以更有效和优雅的方式实现整个过程,NSScanner但不幸的是,我没有必要的此类课程的经验来使其工作。任何建议将不胜感激。

0 投票
1 回答
495 浏览

objective-c - 从 URL Objective C NSScanner 解析图像和扩展

我有一个程序将从我们的服务器中为应用程序抓取图像,但是我们想将图像保存到 iOS 应用程序中以进行缓存。

网址将与此类似。

我需要一种方法将图像名称(mypicture)和扩展名(.png)转换为 2 个不同的字符串以保存它。

我将如何使用 NSscanner 完成此任务?

谢谢

0 投票
3 回答
431 浏览

java - Java中最接近NSScanner的东西

我正在将一些代码从objective-c移到java。该项目是一个 XML/HTML 解析器。在目标 c 中,我几乎只使用 scanUpToString("mystring"); 方法。

我查看了 Java Scanner 类,但它将所有内容都分解为标记。我不想要那个。我只想能够扫描最多出现的子字符串并跟踪扫描仪在整个字符串中的当前位置。

任何帮助都会非常感谢!

编辑

更具体。我不希望 Scanner 进行标记。

在上面的代码中,我想要 feedScanner.next(title); 扫描到下一次出现的末尾"<title"

实际发生的是第一次调用 feeScanner.next 时它起作用,因为默认分隔符是空格,但是,第二次调用它失败(出于我的目的)。

0 投票
1 回答
185 浏览

cocoa - 在 Cocoa 中使用 [NSScanner: scanInteger] 进行正确验证

我正在通过 NSScanner:scanInteger 将字符串转换为有符号整数,但它似乎接受了诸如“123abc”之类的值作为“123”,而不是在无效输入上引发错误。

我可以进行自己的自定义验证,但更愿意找到一个 API 来进行转换并在“123abc”上失败。

顺便说一句,'abc123' 确实会因 scanInteger 而失败,这很好。

0 投票
3 回答
400 浏览

iphone - NSScanner scanUpToCharactersFromSet 给出了 BAD ACCESS

最后一行使应用程序因访问不当而崩溃。它与地址符号有关&吗?我不清楚为什么它需要这种类型的语法。

我试图简单地检查我的 BOOL 是否inputString包含任何非字母数字字符。如果是,pass则变为 YES。

更新:我看到我完全不了解扫描仪。我理解这个输出:

日志中的结果:pass is 1 for Hello

我想知道实际上测试字符串是否包含非字母数字字符。我如何将这样的测试纳入其中?

0 投票
1 回答
87 浏览

iphone - 无法打印分配给 NSScanner 的 NSString

我正在尝试扫描 html 文件中的特定字符串,将其分配给 NSString,然后使用 NSString 执行操作。如果重要的话,我在 Cocos2d 中这样做。

我的代码如下所示:

当我运行代码时,NSLog 会打印出我正在执行代码的层的名称。

我很困惑,因为我按照 Apple 的这个例子做了一个 T: https ://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/Scanners.html#//apple_ref/doc/uid /20000147-BCIEFGHC (滚动到底部)

任何建议将不胜感激。