let sessions = TWTRTwitter.sharedInstance().sessionStore.existingUserSessions()

应该返回一个TWTRSession数组。
但是,元素的类型为untyped(Any),并且使用if let authsession = any as? TWTRSession转换为TWTRSession失败。此外,强制施法显然会崩溃。
let authsession = any as! TWTRSession // crashes

崩溃错误:
Could not cast value of type 'TWTRSession' (0x103fbe370) to 'TWTRSession' (0x103cf5cc8).

这是一个非常有趣的错误,您不觉得吗? TWTRSession匹配,但可以肯定的是,十六进制值不匹配。

哦,这可以解决到3.3.0之前的问题。 Twitter上没有发布说明或迁移说明。事情只是默默地停止了工作。

相关:TWTRTwitter sessionStore now returns TWTRAuthSession: so how does one access the userName property now?

最佳答案

我最终创建了一个C函数来重新创建数组并从我的Swift文件中调用它:

NSArray<TWTRSession *> *existingUserSessions(TWTRSessionStore *store) {
    NSArray<TWTRSession *> *existingSessions = store.existingUserSessions;
    NSUInteger count = existingSessions.count;
    NSMutableArray<TWTRSession *> *sessions = [NSMutableArray arrayWithCapacity:count];
    for (TWTRSession *session in existingSessions) {
        [sessions addObject:session];
    }

    return [sessions copy];
}

10-07 23:41