ios - 转换 [String] 以在 TWTRTimelineFilter.handles 中使用

标签 ios swift twitter-fabric

我正在尝试过滤 TWTRListTimelineDataSource(listSlug:listOwnerScreenName:apiClient)但我无法弄清楚如何将数组转换为过滤器将接受的集合。 我有 2 个数组,memberIDs大约有 30 个字符串,那么 userFavorites其中包含您收藏的memberID。我有一个TWTRTimelineView显示所有成员的推文,但我想提供一个仅显示收藏夹中的推文的选项。

这是我的原始代码:

var handlesToRemove = [String]()
for id in memberIDs {
    if userFavorites.contains(id!) {
    } else {
        handlesToRemove.append(id!)
    }
}
let filter = TWTRTimelineFilter()
filter.handles = handlesToRemove
dataSource.timelineFilter = filter

但是它给了我一个错误 [String]不可转换为Set<AnyHashable>?

我尝试更改 handlesToRemove = Set<AnyHashable>()并使用 handlesToRemove.insert(id!)而不是追加()。

看看调试,它给了我正确的handlesToRemove,但过滤器不起作用,时间线没有改变。

From the documentation如果我硬编码filter.handles = ["memberid1","memberid2"]它可以工作并删除这些 ID,但我需要用户能够制作自己的过滤器。

这可能吗?或者是否有更好的方法来显示带有句柄数组的时间线?

最佳答案

使用Set init将数组转换为Set也使用filter而不是在循环中添加对象。

let handlesToRemove = memberIDs.filter { !userFavorites.contains($0!) }
let filter = TWTRTimelineFilter()
filter.handles = Set(handlesToRemove)

关于ios - 转换 [String] 以在 TWTRTimelineFilter.handles 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605648/

相关文章:

java - Android Twitter 登录与结构集成,点击时出现白屏然后关闭白屏

ios - iOS填充我的TabBar图标图像?

ios - XCode 中子项目的 header 搜索路径

swift - 如何访问在协议(protocol)中声明为默认值的函数并使用来自另一个协议(protocol)的关联类型?

swift - Cocoa NSTask 输出提取

android - Activity 未找到异常 : No Activity found to handle Intent sospicious behaviour

ios - 将 UIPinchGestureRecognizer 缩放级别 Objective C 限制为 Swift 3.0

ios - iOS 中的 subview 动画一次一个

ios - 在容器 View 中交换 View Controller

android - 在 Android 上,服务中发生的 Crashlytics "see"崩溃可以吗?