当前位置: 首页 > 面试题库 >

在Swift中使用谓词

钱照
2023-03-14
问题内容

我正在为我的第一个应用程序浏览本教程(学习Swift):http : //www.appcoda.com/search-bar-tutorial-
ios7/

我被困在这部分(Objective-C代码):

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c]         %@", searchText];
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}

谁能建议如何在Swift中为NSPredicate创建等效项?


问题答案:

这实际上只是语法切换。好,所以我们有这个方法调用:

[NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];

在Swift中,构造函数跳过“ blahWith…”部分,仅将类名用作函数,然后直接进入参数,因此[NSPredicate predicateWithFormat: …]将变为NSPredicate(format: …)。(例如,[NSArray arrayWithObject: …]将变为NSArray(object: …)。这是Swift中的常规模式。)

所以现在我们只需要将参数传递给构造函数即可。在Objective-
C中,NSString文字看起来像@"",但是在Swift中,我们仅对字符串使用引号。这样就给我们:

let resultPredicate = NSPredicate(format: "name contains[c] %@", searchText)

实际上,这正是我们这里需要的。

(顺便说一句,您会注意到其他一些答案,而不是使用格式字符串,如"name contains[c] \(searchText)"。那是不正确的。它使用字符串插值,这与谓词格式不同,通常对此不起作用。)



 类似资料:
  • 我是Hazelcast的新手-评估和原型设计,看看它是否适合我们的分布式内存缓存需求。其中一个要求是能够使用通配符在给定地图中搜索关键字。通过查看IMap文档,可以使用keySet(谓词谓词)。但我不知道如何使用谓词,在给定通配符字符串的情况下,返回一个包含所有匹配键的键集。举个例子会很有帮助。 我的代码片段。这是客户端。 谢谢

  • 问题内容: 我想在Swift 3.0中使用生成随机字节。这是我在Swift 2.2中所做的 在Swift 3中,我尝试这样做,因为我知道unsafemutablebytes的概念现在有所不同,但是它不允许我返回。如果我评论退货部分,它仍然会说 有谁知道如何解决这一问题? 谢谢 问题答案: 您已经关闭了,但是内部的封闭是从封闭而不是外部函数返回的。因此,仅应在闭包中调用该方法,并将结果传递回去。 对

  • 问题内容: 我正在尝试在Swift / Xcode6中使用UITextFieldDelegate,并且正在为应该使用stringByReplacingCharactersInRange的方式而苦苦挣扎。编译器错误为“无法将表达式的类型“字符串”转换为类型“ $ T8”。 Xcode 6 Beta 5的更新:问题是shouldChangeCharactersInRange提供了一个NSRange对象

  • 问题内容: 我正在尝试学习一些Swift lang,并且想知道如何将以下Objective-C转换为Swift: 更具体地说,我需要知道如何在新语法中使用。 问题答案: 正确的Swift运算符是: 当然,如果您还需要将视图分配给新的常量,那么语法就是您的孩子,就像Kevin提到的那样。但是,如果您不需要该值而只需要检查类型,则应使用运算符。

  • 问题内容: 在这种情况下,永远不会调用timerFunc()。我想念什么? 问题答案: 您可以创建一个计划的计时器,该计时器自动将其自身添加到运行循环并开始触发: 迅捷2 斯威夫特3,4,5 或者,您可以保留当前代码,并在准备就绪时将计时器添加到runloop中: 迅捷2 斯威夫特3,4,5

  • 问题内容: 我在Swift中有一个桥接函数,在C中其参数之一是。在Swift中,这会生成一个。我设法通过调用来尊重指针(有更好的方法吗?)。但是,我在接下来的2层中苦苦挣扎:的数组及其/ 成员。 在C语言中 在Swift中,第一个奇怪的事情是它不允许我访问的元素,但是当我将其作为属性访问时非常高兴。换句话说,这有效并且甚至具有正确的数据(对于我的第一位成员来说)… 其次,让我打印下标,但值始终是