- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含文件名的数组,我想找到所有以例如结尾的名称。 00001.trc 当 traceNum
为 1 时。我试过这个:
NSPredicate *tracePredicate = [NSPredicate predicateWithFormat:@"SELF ENDSWITH \"%05d.trc\"", traceNum];
我的谓词是 SELF ENDSWITH "%05d.trc"
而不是 SELF ENDSWITH "00001.trc"
我尝试过这个:
NSPredicate *tracePredicate = [NSPredicate predicateWithFormat:@"SELF ENDSWITH %@%05d.trc%@", @"\"", traceNum, @"\""];
我遇到了一个异常:无法解析格式字符串“SELF ENDSWITH %@%05d.trc%@”
。
所以我尝试了这个:
NSPredicate *tracePredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"SELF ENDSWITH \"%05d.trc\"", traceNum]];
并且它有效。
那么,除了 predicateWithFormat
之外,我真的还需要 stringWithFormat
吗?还是我在创建谓词时没有正确执行某些操作?
最佳答案
你是对的; predicateWithFormat:
与 stringWithFormat:
不太一样。
之所以有所不同,有几个主要原因:
va_list
中弹出,然后将其装箱到适当的 NSExpression
对象中。NSString
不支持的格式说明符:%K
。这就是在关键路径中进行替换的方法。如果您尝试使用 %@
替换属性名称,它实际上会被解释为文字字符串,而不是属性名称。%05d
中的 05
。一方面,这没有意义。 NSPredicate
进行数字比较(在这种情况下,00005
与 5
相同,因此零填充无关)和字符串比较(在您可以在将字符串提供给 NSPredicate
之前自行格式化字符串)。 (它还进行其他比较,例如集合操作,但我现在跳过这些)那么,你如何做你想做的事呢?最好的方法是这样的:
NSString *trace = [NSString stringWithFormat:@"%05d.trc", traceNum];
NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF ENDSWITH %@", trace];
通过这种方式,您可以执行所需的所有格式设置,但仍然使用更正确的方法,即传递常量字符串作为谓词格式。
关于cocoa - predicateWithFormat 与 stringWithFormat : is the former supposed to do the same as the latter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7238631/
关闭。这个问题需要details or clarity .它目前不接受答案。 想要改进这个问题吗? 通过 editing this post 添加详细信息并澄清问题. 关闭去年。 Improve th
我是 Kotlin 的新手,我正在使用它。我非常想创建一个非常基本的事件总线。所以我想出了这个 interface Event interface EventListener { fun ha
我有这种带有 div 和链接的复杂设置。无论如何,当您将鼠标悬停在我页面左上角的 Logo 时,它应该会发生变化,而且确实如此。但是,如果您的鼠标移动到页面顶部的任何位置(图像上以红色标出),它也会发
我正在尝试使用 cvPerspectiveTransform 来转换四个 2D 点。我已经通过 cvFindHomography 获得了变换矩阵 (3x3)。我不知道要提供什么样的结构才不会遇到错误。
这是一个错误还是有文档表明不要在指令名称中使用后缀“start”?只有“完成”指令有效。 HTML: ... Angular doesn't like the suffix 'start'
我是 jQuery 新手,但只是尝试创建一个可用于过滤表的函数。我已经设置了表格,以便我可以按类选择所有行(效果很好)并在结果上调用each()。在每个()的回调中我有这个 if 语句: if ($(
苹果和橙子的问题。 12 个测试用例中只有 3 个被清除。几个小时后就想不出其他事情了。 示例输入0 7 11 5 15 3 2 -2 2 1 5 -6 示例输出 0 1 1 问题:https://w
我正在尝试在 Netbeans 中正确设置保存时部署(或保存时编译,或任何我应该设置的)。 我正在努力实现这一目标: 1) 如果结构没有改变,需要时热替换一些类(按下按钮,新代码替换旧代码) 2) 在
由 XCode 向导创建的主从项目包含 tableView:cellForRowAtIndexPath: 的实现,它调用 dequeueReusableCellWithIdentifier:forIn
Internet Explorer 9 无法正确显示绝对定位的元素。父级是相对的,所以绝对元素相对于父级div应该是“绝对”的。但是,它的行为更接近“固定”行为。当我尝试在相关元素上触发 hasLay
我对 WM_PAINT 有疑问。基本上我希望在用户 WM_COMMAND 之后调用 WM_PAINT,但由于某种原因它在主函数中仍然被调用。 case WM_PAINT: { cr
我正在尝试来自 Android 应用程序开发傻瓜 的示例,这是一个简单的应用程序,可以切换手机的铃声模式。代码如下。 public class SilentModeToggleActivity ext
根据广为流传的建议,我应该注意让我的大型软件项目尽可能模块化。当然有多种方法可以实现这一点,但我认为没有办法绕过使用更多或更少的接口(interface)类。 以使用 C++ 开发 2D 游戏引擎为例
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 Rails 3 应用程序中保存哈希时遇到问题。使用控制台时我可以保存它 - 当我通过表单提交哈希时它不起作用。 This SO question addresses它但解决方案对我不起作用。此外
在 CDA R2 CCD 实现指南中,ClinicalDocument 元素(文档的根元素)应该有一个 id 元素。 此 id 元素属于“II”数据类型:http://wiki.hl7.no/inde
我使用g++进行编译时没有任何选项,该程序可在1分钟左右运行。 但是,使用-O3进行编译会使它在大约1-2秒内运行。 我的问题是加快速度是否正常?还是我的代码可能太糟糕了,以至于优化可能会占用很多时间
我有一个基于 HTML 表单的调查问卷,我正试图将其放在一起。当我遇到 float 元素问题时,我已经使用 CCS 排列了所有 HTML 表单元素。 我有一个包含一些表单元素的 DIV,我想将它们放在
以下代码在 Clang 中编译良好并输出 int [3] 数组的大小 #include int main() { const int (&a)[] = { 1, 2, 3 }; std::c
我正在尝试运行以下代码: Cluster cluster = new Cluster(); cluster.add("localhost", port_number); Client client =
我是一名优秀的程序员,十分优秀!